SAML 구성 옵션

SAML 구성 옵션 (SAML configuration options)

Grafana에서 SAML 인증을 구성하는 데 필요한 모든 옵션을 한눈에 정리한 종합 가이드예요. 각 설정의 설명과 기본값, 예시 구성(ini·Terraform)을 다룹니다. 다른 Grafana 구성과 마찬가지로 이 옵션들은 환경 변수로도 적용할 수 있어요.

출처: SAML configuration options

본문

아래 표는 모든 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를 참고하세요.

더 알아보기 (Learn more)