SAML 팀 및 역할 동기화 구성

SAML 팀 및 역할 동기화 구성 (Configure Role and Team sync for SAML)

Grafana Enterprise(및 일부 Grafana Cloud 플랜)에서 사용 가능한 기능으로, SAML assertion의 그룹·역할 속성을 이용해 사용자를 Grafana 팀에 동기화하고 역할을 자동 매핑하는 방법을 설명해 줘요. IdP(예: Okta)의 그룹을 Grafana 팀과 역할에 연결하고 싶을 때 유용하답니다.

출처: Configure team sync for SAML

본문

참고: Grafana Enterprise와 선택된 Grafana Cloud 플랜의 고객에게 제공돼요. 가격 정보는 pricing을 참고하거나 영업팀에 문의하세요.

SAML 팀 동기화 (Team sync)

SAML Team sync를 사용하려면 assertion_attribute_groups를 사용자 그룹이 저장된 속성 이름으로 설정해요. 그러면 Grafana는 SAML assertion에서 추출한 속성 값을 사용해, External group sync 탭에 구성된 것과 같은 이름의 그룹에 사용자를 추가해요.

⚠️ 경고: Grafana는 SAML groups 속성이 각 그룹에 대해 별개의 AttributeValue 요소로 구성되어야 해요. 단일 AttributeValue 안에 콤마나 다른 문자로 구분된 여러 그룹을 포함하지 마세요. 그렇게 하면 올바른 그룹 파싱이 되지 않아요. 예시:

<Attribute Name="groups">
    <AttributeValue>admins_group</AttributeValue>
    <AttributeValue>division_1</AttributeValue>
</Attribute>

참고: Team Sync는 SAML의 사용자를 Grafana 팀으로 동기화해 주지만, Grafana에서 팀을 자동 생성하지는 않아요. 이 기능을 사용하려면 먼저 Grafana에서 팀을 만들어야 해요.

다음 부분 SAML assertion이 주어졌을 때:

<Attribute Name="groups">
    <AttributeValue>admins_group</AttributeValue>
    <AttributeValue>division_1</AttributeValue>
</Attribute>

구성은 다음과 같아요.

[auth.saml]
# ...
assertion_attribute_groups = groups

다음 External Group ID들은 원하는 팀의 External group sync 탭에 유효한 입력값이 돼요.

  • admins_group
  • division_1

Team Sync에 대한 자세한 내용은 Team Sync 문서를 참고하세요.

SAML 역할 동기화 (Role sync)

역할 동기화는 IdP의 사용자 역할을 Grafana에 매핑할 수 있게 해 줘요. 역할 동기화를 활성화하려면 role 속성과 Editor, Admin, Grafana Admin 역할의 가능한 값들을 구성해요. 사용자 역할에 대한 자세한 내용은 Roles and permissions 문서를 참고하세요.

구성 파일에서 assertion_attribute_role 옵션을 역할 정보가 추출될 속성 이름으로 설정해요.

  • role_values_none 옵션을 None 역할에 매핑되는 값으로 설정해요.
  • role_values_viewer 옵션을 Viewer 역할에 매핑되는 값으로 설정해요.
  • role_values_editor 옵션을 Editor 역할에 매핑되는 값으로 설정해요.
  • role_values_admin 옵션을 조직 Admin 역할에 매핑되는 값으로 설정해요.
  • role_values_grafana_admin 옵션을 Grafana Admin 역할에 매핑되는 값으로 설정해요.

사용자 역할이 구성된 값과 일치하지 않으면 auto_assign_org_role 구성 옵션에 지정된 역할이 할당돼요. auto_assign_org_role 필드가 설정되지 않으면 역할은 Viewer로 기본 설정돼요.

예시 구성:

[auth.saml]
assertion_attribute_role = role
role_values_none = none
role_values_viewer = external
role_values_editor = editor, developer
role_values_admin = admin, operator
role_values_grafana_admin = superadmin

중요: 역할 동기화가 구성되면 Grafana에서 수동으로 변경한 사용자 역할과 조직 멤버십 변경사항이 다음 로그인 시 덮어써져요. 사용자 조직과 역할은 IdP에서 할당하세요.

사용자 조직과 역할을 IdP와 동기화하고 싶지 않다면 skip_org_role_sync 구성 옵션을 사용할 수 있어요.

[auth.saml]
skip_org_role_sync = true

Okta로 역할 동기화 구성 (Configure role sync with Okta)

이 섹션은 Okta가 SAML assertion에 그룹 멤버십을 보내도록 구성한 뒤, 그 그룹을 사용해 Grafana에서 역할을 할당하는 방법을 보여 줘요.

1단계: Okta가 그룹을 보내도록 구성

  1. Okta Admin에서 Applications > Applications로 이동해 Grafana SAML 앱을 열어요.
  2. Sign On 탭을 열고 SAML 2.0 섹션에서 Edit를 클릭해요.
  3. GROUP ATTRIBUTE STATEMENTS로 스크롤해요.
  4. 다음 설정으로 그룹 속성을 추가해요.
필드
Name Group
Filter Matches regular expression
Value .*
  1. Save를 클릭해요.

이 구성은 사용자가 속한 모든 Okta 그룹을 Group 속성 아래의 SAML assertion으로 보내요.

참고: 특정 그룹만 보내려면 정규 표현식 필터를 변경하세요. 예를 들어 grafana-.*grafana-로 시작하는 그룹만 보내요.

2단계: Grafana가 그룹을 역할에 매핑하도록 구성

assertion_attribute_role을 그룹 속성의 이름으로 설정해 역할 할당에 그룹 속성을 사용해요.

[auth.saml]
# Use the Group attribute (sent from Okta) for role assignment
assertion_attribute_groups = Group
assertion_attribute_role = Group

# Map Okta group names to Grafana roles
role_values_admin = grafana-admins
role_values_editor = grafana-editors
role_values_viewer = grafana-viewers

이 구성으로:

  • grafana-admins Okta 그룹의 사용자는 Admin 역할을 받아요.
  • grafana-editors Okta 그룹의 사용자는 Editor 역할을 받아요.
  • grafana-viewers Okta 그룹의 사용자는 Viewer 역할을 받아요.
  • 어떤 그룹과도 일치하지 않는 사용자는 auto_assign_org_role에 지정된 역할을 받아요(기본값 Viewer).

참고: 그룹 이름은 대소문자를 구분해요. Grafana 구성의 그룹 이름이 Okta 그룹 이름과 정확히 일치하는지 확인하세요.

Grafana Cloud 사용자이고 UI로 SAML을 구성하려면:

  1. Administration > Authentication > Configure SAML로 이동해요.
  2. User mapping 섹션에서:
    • Groups attribute: Group
    • Role attribute: Group
  3. Role mapping 섹션에서 각 역할에 Okta 그룹 이름을 입력해요.
  4. Save를 클릭해요.

더 알아보기 (Learn more)