그라파나

GitLab OAuth2 인증

구일칠구 2022. 7. 15. 03:06

GitLab OAuth2 인증

GitLab OAuth2를 활성화하려면 GitLab에 애플리케이션을 등록해야 합니다. GitLab은 사용할 클라이언트 ID와 비밀 키를 생성합니다.

GitLab OAuth 키 생성

GitLab OAuth 애플리케이션 을 생성해야 합니다 . 설명이 포함된 이름 을 선택하고 다음 리디렉션 URI 를 사용합니다 .

https://grafana.example.com/login/gitlab

https://grafana.example.comGrafana에 연결하는 데 사용하는 URL은 어디에 있습니까? HTTPS를 사용하지 않거나 다른 포트를 사용하는 경우 필요에 따라 조정합니다. 예를 들어 에서 Grafana에 액세스하는 경우 다음 http://203.0.113.31:3000을 사용해야 합니다.

http://203.0.113.31:3000/login/gitlab

마지막으로 read_api_as the_Scope_를 선택하고 양식을 제출합니다. 권한 부여를 위해 GitLab 그룹을 사용하지 않으려는 경우(즉, 설정하지 않음 allowed_groups, 아래 참조) read_api_as the_Scope 대신 select_read_user 를 사용하여 GitLab API에 대한 액세스를 더 제한할 수 있습니다.

그 대가로 애플리케이션 ID 비밀 을 받게 됩니다. 이 섹션의 나머지 부분에서는 각각 GITLAB_APPLICATION_ID및 각각을 호출합니다 .GITLAB_SECRET

Grafana에서 GitLab 활성화

GitLab 인증을 활성화하려면 Grafana 구성 파일에 다음을 추가하세요.

[auth.gitlab]
  enabled = true
  allow_sign_up = false
  client_id = GITLAB_APPLICATION_ID
  client_secret = GITLAB_SECRET
  scopes = read_api
  auth_url = https://gitlab.com/oauth/authorize
  token_url = https://gitlab.com/oauth/token
  api_url = https://gitlab.com/api/v4
  allowed_groups =
  
세게 때리다

콜백 URL이 정확하려면 의 root_url옵션 을 설정해야 할 수도 있습니다 . [server]예를 들어 프록시 뒤에서 Grafana를 제공하는 경우.

변경 사항을 적용하려면 Grafana 백엔드를 다시 시작하세요.

, 대신 GitLab의 고유한 인스턴스를 사용하는 경우 gitlab.com조정 auth_url하고 token_url그에 api_url따라 gitlab.com 호스트 이름을 고유한 것으로 바꾸십시오.

allow_sign_up설정하면 false기존 사용자만 GitLab 계정을 사용하여 로그인할 수 있지만 로 allow_sign_up설정하면 GitLab true에서 인증할 수 있는 모든 사용자가 Grafana 인스턴스에 로그인할 수 있습니다. public 을 사용하면 gitlab.com전 세계 모든 사람이 Grafana 인스턴스에 로그인할 수 있음을 의미합니다.

옵션 을 설정하여 지정된 그룹 또는 그룹 목록의 구성원만 액세스하도록 제한할 수 있습니다 allowed_groups.

허용된 그룹

하나 이상의 GitLab 그룹allowed_groups 의 구성원인 인증된 사용자에 대한 액세스를 제한하려면 쉼표 또는 공백으로 구분된 그룹 목록으로 설정 하십시오. 예를 들어 example그룹 구성원에게만 액세스 권한을 부여하려면 다음을 설정 하십시오.

allowed_groups = example
  
이니

bar그룹 에 있는 하위 그룹의 구성원에게도 액세스 권한을 부여하려면 다음을 foo설정 하십시오.

allowed_groups = example, foo/bar
  
이니

GitLab에서 그룹 또는 하위 그룹 이름이 항상 표시 이름과 일치하는 것은 아닙니다. 특히 표시 이름에 공백이나 특수 문자가 포함된 경우에는 더욱 그렇습니다. 그룹 또는 하위 그룹의 URL에 나타나는 대로 항상 그룹 또는 하위 그룹 이름을 사용해야 합니다.

다음은 및 그룹 allow_sign_up으로 액세스가 제한된 활성화 된 전체 예입니다 . 이 예에서는 또한 모든 GitLab 관리자를 Grafana 관리자로 승격합니다.examplefoo/bar

[auth.gitlab]
  enabled = true
  allow_sign_up = true
  client_id = GITLAB_APPLICATION_ID
  client_secret = GITLAB_SECRET
  scopes = read_api
  auth_url = https://gitlab.com/oauth/authorize
  token_url = https://gitlab.com/oauth/token
  api_url = https://gitlab.com/api/v4
  allowed_groups = example, foo/bar
  role_attribute_path = is_admin && 'Admin' || 'Viewer'
  
이니

지도 역할

GitLab OAuth를 사용하여 역할을 매핑할 수 있습니다. 매핑하는 동안 Grafana는 구성 옵션 을 통해 지정된 JMESPath 를 사용하여 역할이 있는지 확인합니다.role_attribute_path

경로 조회를 위해 Grafana는 GitLab의 API /api/v4/user엔드포인트를 쿼리하여 얻은 JSON을 사용합니다. JMESPath 표현식 평가 결과는 role_attribute_path유효한 Grafana 역할이어야 합니다(예: Viewer또는 Editor) Admin. Grafana의 역할 및 권한에 대한 자세한 내용은 사용자 및 권한 정보 를 참조하십시오 .

예제 쿼리는 다음과 같습니다.

role_attribute_path = is_admin && 'Admin' || 'Viewer'
  
세게 때리다

이를 통해 모든 GitLab 관리자가 Grafana의 관리자가 될 수 있습니다.

팀 동기화(Enterprise만 해당)

Grafana Enterprise v6.4 이상에서만 사용 가능

Team Sync를 사용하면 GitLab 그룹을 Grafana의 팀에 매핑하여 사용자가 올바른 팀에 자동으로 추가되도록 할 수 있습니다.

GitLab 그룹은 allowed_groups, like example또는 와 같은 방식으로 참조할 수 있습니다 foo/bar.

'그라파나' 카테고리의 다른 글

그라파나 요구 사항  (0) 2022.07.15
Okta OAuth2 인증  (0) 2022.07.15
GitHub OAuth2 인증  (0) 2022.07.14
Azure AD OAuth2 인증  (0) 2022.07.14
일반 OAuth 인증  (0) 2022.07.13