본문으로 건너뛰기

Grafana 인증/인가

OpenID Connect(OIDC)

사용하려는 OpenID Connect Provider(OP)에 클라이언트를 생성해서 클라이언트 ID와 Secret을 발급받아야 합니다. OIDC discovery를 지원하는 OP의 경우 GET <issuer>/.well-known/openid-configuration를 통해 엔드포인트 정보를 확인할 수 있습니다.

grafana-values.yaml
envFromSecret: <secretName>

grafana.ini:
server:
root_url: <grafanaURL>
auth.generic_oauth:
enabled: true
name: Keycloak
client_id: <clientID>
client_secret: ${OIDC_CLIENT_SECRET} # 환경변수에서 읽어옵니다.
scopes: openid profile email groups
auth_url: <authorizationEndpoint>
token_url: <tokenEndpoint>
api_url: <userinfoEndpoint>
role_attribute_path: <path>
allow_sign_up: true
auto_login: true
use_refresh_token: true
  • auth.generic_oauth
    • allow_sign_up: true
      • Grafana 사용자 리스트에 없는 경우 자동으로 사용자를 생성할지 결정합니다.
      • false인 경우 Grafana에 존재하는 사용자만 로그인할 수 있습니다.
    • auto_login: false
      • Grafana 로그인 페이지를 건너뛰고 OP로 리다이렉트 시킬지 결정합니다.
    • role_attribute_path: <role>
      • 사용자의 Role을 결정하는 방법입니다.
      • None, Viewer, Editor, Admin, GrafanaAdmin 중 하나를 반환해야 합니다.
      • Grafana / Roles and permissions
      • JMESPath 표현식을 사용할 수 있습니다.
        • contains(groups[*], 'devops') && 'GrafanaAdmin' || contains(groups[*], 'backend') && 'Editor' || 'Viewer'
    • allow_assign_grafana_admin: false
      • GrafanaAdmin이 할당되는 경우 Server 관리자 권한을 부여할지 결정합니다.
      • false인 경우 Admin과 동일한 권한을 가집니다.