Grafana 사용자 인터페이스로 SAML 인증 구성
Grafana 사용자 인터페이스로 SAML 인증 구성 (Configure SAML authentication using the Grafana user interface)
Grafana Enterprise 10.0 이상과 일부 Grafana Cloud 플랜에서 사용 가능한 기능으로, 구성 파일 대신 UI에서 SAML 인증을 설정할 수 있어요. UI 방식은 Grafana Cloud 사용자도 접근 가능하고, 입력 검증과 설정 동작 피드백을 제공하며, 구성 업데이트 후 Grafana 재시작이 필요 없다는 장점이 있답니다.
출처: Configure SAML authentication using the Grafana user interface
본문
참고: Grafana Enterprise 10.0 이상과 선택된 Grafana Cloud 플랜 고객에게 제공돼요. 가격 정보는 Pricing을 참고하거나 영업팀에 문의하세요.
Grafana에서 SAML 인증은 구성 파일, Terraform, API, 또는 UI로 구성할 수 있어요. 자세한 내용은 SAML 인증 설정 옵션을 참고하세요. API 또는 UI의 구성은 Grafana 구성 파일의 구성보다 우선해요. 설정 우선순위가 어떻게 결정되는지는 SSO Settings API를 참고하세요.
Grafana SAML UI는 구성 파일로 SAML을 구성하는 것보다 다음과 같은 장점이 있어요.
- Grafana Cloud 사용자도 사용할 수 있어요.
- SAML UI 접근에 인증 설정 접근 권한만 있으면 되므로, Grafana 구성에 대한 제한적 접근 권한을 가진 사용자도 사용할 수 있어요.
- 입력 검증을 수행하고 구성이 동작하는지 피드백을 제공해서 SAML 설정을 쉽게 만들어 줘요.
- 구성 업데이트 후 Grafana를 재시작할 필요가 없어요.
UI에서 SAML 인증을 구성하려면 Grafana에 로그인한 뒤 Administration > Authentication > Configure SAML로 이동해 이 문서를 따라 하세요.
시작하기 전에 (Before you begin)
이 가이드를 따르려면 다음이 필요해요.
- SAML 인증에 대한 지식. Grafana의 SAML 통합 개요는 SAML authentication in Grafana을 참고하세요.
settings:read와settings:write권한(범위settings:auth.saml:*) — SAML 인증 설정을 읽고 업데이트할 수 있게 해 주며,fixed:authentication.config:writer역할이 부여해요. 기본적으로 이 역할은 자체 호스팅 인스턴스에서는 Grafana 서버 관리자에게, Grafana Cloud 인스턴스에서는 조직 관리자에게 부여돼요.- Grafana Enterprise가 포함된 Grafana 10.0 이상 인스턴스, 또는 선택된 Grafana Cloud 계정.
General Settings (일반 설정)
General settings 필드를 완성해요.
- Allow signup: 활성화하면 SAML 로그인으로 사용자를 생성할 수 있어요. 비활성화하면 기존 Grafana 사용자만 SAML로 로그인할 수 있어요.
- Auto login: 활성화하면 로그인 화면을 건너뛰고 Grafana가 자동으로 SAML로 로그인해요.
- Single logout: SAML single logout 기능으로 사용자가 SAML SSO로 맺은 현재 IdP 세션에 연결된 모든 애플리케이션에서 로그아웃할 수 있게 해 줘요. 자세한 내용은 SAML single logout 문서를 참고하세요.
- Identity provider initiated login: 사용자가 SAML IdP에서 Grafana로 직접 로그인할 수 있게 해 줘요. 자세한 내용은 IdP initiated login 문서를 참고하세요.
Sign Requests (요청 서명)
Sign requests 토글을 켜서 나가는 요청을 서명할지 지정해요. 선택 사항이지만 서명을 요청하면 SAML에 더 안전한 접근 방식을 제공해요.
서명하기로 선택했다면:
- 서비스 제공자(Grafana)와 SAML IdP가 사용할 인증서와 개인 키를 제공해요. 개인 키는 PKCS #8 형식으로 발급하세요.
- SAML 자격 증명 생성 예시는 관련 문서를 참고하세요.
- 또는 UI에서 직접 새 개인 키와 인증서 쌍을 생성할 수 있어요. Generate key and certificate 버튼을 클릭하면 새 인증서에 포함할 정보를 입력하는 폼이 열려요.
- 사용할 서명 알고리즘을 선택해요. SAML 표준은 MITM 공격을 피하기 위해 인증이나 로그아웃 요청 같은 일부 메시지 유형에 디지털 서명을 권장해요.
Connect Grafana with the Identity Provider (IdP 연결)
참고: 이 화면은 건너뛸 수 있어요.
Grafana 메타데이터로 IdP 구성:
- Metadata URL을 복사해 SAML IdP에 제공해 Grafana와 IdP 간 연결을 설정해요. 메타데이터 URL에는 IdP가 Grafana와 연결을 설정하는 데 필요한 정보가 포함돼 있어요.
- Assertion Consumer Service URL을 복사해 SAML IdP에 제공해요. 이 URL은 사용자가 인증된 후 IdP가 SAML assertion을 보내는 엔드포인트예요.
- Single Logout 기능을 쓰려면 Single Logout Service URL을 복사해 SAML IdP에 제공해요.
IdP 데이터로 Grafana 구성 완료:
- 메타데이터에는 Grafana가 IdP와 연결을 설정하는 데 필요한 정보가 포함돼 있어요. Base64 인코딩 값, 파일 경로, 또는 URL로 제공할 수 있어요.
User Mapping (사용자 매핑)
Assertion mapping:
SAML assertion에서 사용자 정보를 매핑하려면 Assertion attributes mappings 섹션을 완성해요. Team sync를 사용하려면 Groups attribute 필드를 구성해야 해요. Team sync는 사용자의 SAML 그룹 멤버십을 기반으로 Grafana 팀에 자동으로 매핑해 줘요. Team sync와 SAML용 team sync 구성에 대해 자세히 알아보세요.
Role mapping:
사용자의 SAML 역할을 기반으로 역할을 자동 할당하려면 Role mapping 섹션을 완성해요.
- Role attribute 필드를 구성해 SAML 역할 정보를 검색할 SAML 속성을 지정해요.
- Role mapping 섹션에서 Grafana 역할에 매핑하려는 SAML 역할을 입력해요. 여러 SAML 역할을 하나의 Grafana 역할에 매핑하려면 콤마와 공백으로 구분해요. 예:
Editor: editor, developer.
Role mapping은 사용자가 Grafana에 로그인할 때마다 SAML 역할에 따라 사용자의 기본 역할을 자동 업데이트해요. SAML 역할 동기화에 대해 자세히 알아보세요.
Entra ID로 매핑:
IdP로 Entra ID를 SAML로 사용한다면 Azure의 이러한 속성 해석을 유의해야 해요. UI의 해당 필드에 전체 URL을 입력하세요. 이 URL은 메타데이터 XML의 URL과 일치해야 해요. Role/Group 클레임과 다른 assertion 간에는 Microsoft가 문서화한 차이가 있어요.
- Group and Role:
http://schemas.microsoft.com/ws/2008/06/identity/claims/role http://schemas.microsoft.com/ws/2008/06/identity/claims/groups http://schemas.microsoft.com/identity/claims/displayname - Other assertions:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
SAML 프로토콜로 Grafana를 Entra ID와 설정하면서 Graph API에서 사용자 그룹을 가져오고 싶다면 Entra ID Service Account Configuration 하위 섹션을 완성해요.
- Entra ID에 서비스 계정을 만들고 Entra ID Service Account Configuration 섹션에 필요한 세부 정보를 제공해요.
- Entra ID 애플리케이션의 Client ID를 제공해요.
- Entra ID 애플리케이션의 Client Secret을 제공해요. 이 값은 Entra ID에서 액세스 토큰을 요청하는 데 사용돼요.
- Entra ID request Access Token URL을 제공해요.
- 150개가 넘는 그룹을 가진 사용자가 없어도 Force use Graph API 토글을 활성화해 Graph API 사용을 강제할 수 있어요.
조직 매핑 (Mapping organizations):
여러 조직이 있고 사용자를 조직에 자동으로 추가하고 싶다면 Org mapping 섹션을 완성해요.
- Org attribute 필드를 구성해 SAML 조직 정보를 검색할 SAML 속성을 지정해요.
- Org mapping 필드에 SAML 조직에서 Grafana 조직으로의 매핑을 채워요. 예:
Org mapping: Engineering:2, Sales:2는 SAML에서Engineering또는Sales조직에 속한 사용자를 ID2인 Grafana 조직에 매핑해요. - 사용자가 여러 조직에서 다른 역할을 갖게 하려면 역할을 추가로 지정할 수 있어요. 예:
Org mapping: Engineering:2:Editor는Engineering조직의 사용자를 ID2인 Grafana 조직에 매핑하고 Editor 역할을 할당해요.
Organization mapping은 사용자가 Grafana에 로그인할 때마다 SAML 조직에 따라 사용자의 조직 멤버십(구성했다면 역할도)을 자동 업데이트해요. SAML organization mapping에 대해 자세히 알아보세요.
사용자의 SAML 조직 멤버십에 따라 Grafana 접근을 제한하려면 Allowed organizations 필드를 채워요.
Test And Enable (테스트 및 활성화)
Save and enable을 클릭해요. 구성에 문제가 있으면 오류 메시지가 나타나요. 이전 단계로 돌아가 문제를 수정하고 완료되면 오른쪽 상단의 Save and apply를 클릭해요. 구성 문제가 없으면 SAML 통합 상태가 Enabled로 변경되고 SAML 구성이 활성화돼요. SAML 통합을 비활성화하려면 오른쪽 상단의 Disable을 클릭해요.