SAML 구성 옵션
SAML 구성 옵션 (SAML configuration options)
Grafana에서 SAML 인증을 구성하는 데 필요한 모든 옵션을 한눈에 정리한 종합 가이드예요. 각 설정의 설명과 기본값, 예시 구성(ini·Terraform)을 다룹니다. 다른 Grafana 구성과 마찬가지로 이 옵션들은 환경 변수로도 적용할 수 있어요.
본문
아래 표는 모든 SAML 구성 옵션을 설명해요. 특정 옵션에 대한 자세한 내용은 계속 읽어보세요. 다른 Grafana 구성과 마찬가지로 이 옵션들은 환경 변수로도 적용할 수 있어요.
| 설정 | 필수 | 설명 | 기본값 |
|---|---|---|---|
enabled |
No | SAML 인증이 허용되는지 여부 | false |
name |
No | Grafana UI에서 SAML 인증을 참조하는 데 사용되는 이름 | SAML |
entity_id |
No | 서비스 제공자의 entity ID. 서비스 제공자의 고유 식별자 | https://{Grafana URL}/saml/metadata |
single_logout |
No | SAML Single Logout이 활성화되는지 여부 | false |
allow_sign_up |
No | SAML 로그인을 통한 새 Grafana 사용자 생성 허용 여부. false면 기존 Grafana 사용자만 SAML로 로그인 가능 |
true |
auto_login |
No | SAML 자동 로그인이 활성화되는지 여부 | false |
allow_idp_initiated |
No | SAML IdP-initiated 로그인이 허용되는지 여부 | false |
certificate 또는 certificate_path |
Yes | SP X.509 인증서의 Base64 인코딩 문자열 또는 경로 | |
private_key 또는 private_key_path |
Yes | SP 개인 키의 Base64 인코딩 문자열 또는 경로 | |
signature_algorithm |
No | IdP로의 요청 서명에 사용되는 서명 알고리즘. 지원 값: rsa-sha1, rsa-sha256, rsa-sha512 |
|
idp_metadata, idp_metadata_path, 또는 idp_metadata_url |
Yes | IdP SAML 메타데이터 XML의 Base64 인코딩 문자열, 경로 또는 URL | |
max_issue_delay |
No | SP의 AuthnRequest 발행과 Response 처리 사이 허용되는 최대 시간 | 90s |
metadata_valid_duration |
No | SP 메타데이터가 유효하게 유지되는 기간 | 48h |
relay_state |
No | IdP-initiated 로그인을 위한 relay state. IdP에 구성된 relay state와 일치해야 함 | |
assertion_attribute_name |
No | 사용자 이름으로 사용할 SAML assertion 내 속성의 friendly name 또는 이름. 또는 assertion 내 속성 이름과 일치하는 변수 템플릿도 가능 | displayName |
assertion_attribute_login |
No | 사용자 로그인 핸들로 사용할 assertion 내 속성 이름 | mail |
assertion_attribute_email |
No | 사용자 이메일로 사용할 assertion 내 속성 이름 | mail |
assertion_attribute_groups |
No | 사용자 그룹으로 사용할 assertion 내 속성 이름 | |
assertion_attribute_role |
No | 사용자 역할로 사용할 assertion 내 속성 이름 | |
assertion_attribute_org |
No | 사용자 조직으로 사용할 assertion 내 속성 이름 | |
assertion_attribute_external_uid |
No | 사용자 외부 UID로 사용할 assertion 내 속성 이름 | userUID |
allowed_organizations |
No | 콤마 또는 공백으로 구분된 조직 목록. 사용자는 로그인하려면 적어도 한 조직의 구성원이어야 함 | |
org_mapping |
No | 콤마 또는 공백으로 구분된 Organization:OrgId:Role 매핑 목록. 조직은 *("모든 사용자" 의미)가 될 수 있음. 역할은 선택 사항이며 None, Viewer, Editor, Admin 가능 |
|
role_values_none |
No | None 역할에 매핑될 콤마 또는 공백 구분 역할 목록 |
|
role_values_viewer |
No | Viewer 역할에 매핑될 역할 목록 |
|
role_values_editor |
No | Editor 역할에 매핑될 역할 목록 |
|
role_values_admin |
No | Admin 역할에 매핑될 역할 목록 |
|
role_values_grafana_admin |
No | Grafana Admin(Super Admin) 역할에 매핑될 역할 목록 |
|
skip_org_role_sync |
No | 조직 역할 동기화를 건너뛸지 여부 | false |
name_id_format |
No | SAML AuthnRequest에서 요청되는 NameID 요소의 형식 | urn:oasis:names:tc:SAML:2.0:nameid-format:transient |
client_id |
No | IdP에서 사용자에 대한 추가 정보를 검색하는 데 사용되는 IdP 서비스 앱의 Client ID (Microsoft Entra ID 전용) | |
client_secret |
No | IdP에서 사용자 추가 정보 검색에 사용되는 IdP 서비스 앱의 Client secret (Microsoft Entra ID 전용) | |
token_url |
No | IdP에서 액세스 토큰을 검색하는 URL (Microsoft Entra ID 전용) | |
force_use_graph_api |
No | IdP 서비스 앱을 사용해 IdP에서 사용자 추가 정보를 검색할지 여부 (Microsoft Entra ID 전용) | false |
예시 SAML 구성 (Example SAML configuration)
[auth.saml]
enabled = true
auto_login = false
certificate_path = "/path/to/certificate.cert"
private_key_path = "/path/to/private_key.pem"
idp_metadata_path = "/my/metadata.xml"
max_issue_delay = 90s
metadata_valid_duration = 48h
assertion_attribute_name = displayName
assertion_attribute_login = mail
assertion_attribute_email = mail
assertion_attribute_groups = Group
assertion_attribute_role = Role
assertion_attribute_org = Org
role_values_viewer = external
role_values_editor = editor, developer
role_values_admin = admin, operator
role_values_grafana_admin = superadmin
org_mapping = Engineering:2:Editor, Engineering:3:Viewer, Sales:3:Editor, *:1:Editor
allowed_organizations = Engineering, Sales
Terraform 예시 SAML 구성
resource "grafana_sso_settings" "saml_sso_settings" {
provider_name = "saml"
saml_settings {
name = "SAML"
auto_login = false
certificate_path = "/path/to/certificate.cert"
private_key_path = "/path/to/private_key.pem"
idp_metadata_path = "/my/metadata.xml"
max_issue_delay = "90s"
metadata_valid_duration = "48h"
assertion_attribute_name = "displayName"
assertion_attribute_login = "mail"
assertion_attribute_email = "mail"
assertion_attribute_groups = "Group"
assertion_attribute_role = "Role"
assertion_attribute_org = "Org"
role_values_editor = "editor, developer"
role_values_admin = "admin, operator"
role_values_grafana_admin = "superadmin"
org_mapping = "Engineering:2:Editor, Engineering:3:Viewer, Sales:3:Editor, *:1:Editor"
allowed_organizations = "Engineering, Sales"
}
}
grafana_sso_settings 리소스 사용에 대한 완전한 참조는 Terraform Registry를 참고하세요.