Grafana - OIDC
Ⅰ. Okta-Grafana SSO 연동
1. [Okta] 앱 등록 및 설정
경로": "Applications" → "Applications" → "Create App Integration" 선택

옵션 선택 후 "Next" 선택
"Sign-in method" → "OIDC - OpenID Connect" 선택
"Application type" → "Web Application" 선택
App integration name (필수) : Application 이름 입력
Logo (선택) : 별도로 다운 받거나 아래 로고 파일 다운로드 후 업로드
Grant type (필수) :
"Authorization Code", "Refresh Token" 선택

Sign-in redirect URIs : 아래 옵션 중 Grafana 환경에 적합한 1개 옵션 입력
Grafana Cloud : https://<Grafana_ORG>.grafana.net/login/okta
Grafana On-premise : http://<on-premises_grafana_server_domain_or_ip>:<grafana_server_port>/login/okta
두 가지 Redirect URI 예시는 Grafana 환경적인 구성에 따라 다르게 구성되는 옵션에 대하여 가이드 항목이며, 둘 중 하나의 URI만 구성이 가능합니다. 만약, 2가지 환경이 모두 존재할 경우, 각각 환경의 Application을 별도로 추가 구성하여야 합니다.

Logout redirect URIs : 아래 옵션 중 Grafana 환경에 적합한 1개 옵션 입력
Grafana Cloud : https://<Grafana_ORG>.grafana.net/logout
Grafana On-premise : http://<on-premises_grafana_server_domain_or_ip>:<grafana_server_port>/logout
두 가지 Redirect URI 예시는 Grafana 환경적인 구성에 따라 다르게 구성되는 옵션에 대하여 가이드 항목이며, 둘 중 하나의 URI만 구성이 가능합니다. 만약, 2가지 환경이 모두 존재할 경우, 각각 환경의 Application을 별도로 추가 구성하여야 합니다.

Controlled access 옵션 중 "Skip group assignment for now" 선택 후 "Save" 선택
사용자 Okta 대시보드에 Grafana 앱 구성
"General" → "General Settings" 옵션(Edit)에서 "LOGIN" 항목의 "Login initiated by"를 "Either Okta or App"으로 선택합니다.
"Initiate login URI" : 위의 "Sign-in redirect URIs" 항목과 동일하게 입력합니다.

2. [Grafana] 인증 설정
Grafana 관리자 권한 연결
경로 : "Administration" → "Authentication" → "Okta" 선택
Okta 인증 정보 입력
Client ID : <Okta에서 복사한 Client ID 정보>
Client Secret : <Okta에서 복사한 Client Secret 정보>
Auth URL : https://<OKTA_TENANT_Subdomain>.okta.com/oauth2/v1/authorize
Token URL : https://<OKTA_TENANT_Subdomain>.okta.com/oauth2/v1/token
API URL : https://<OKTA_TENANT_Subdomain>.okta.com/oauth2/v1/userinfo
Sign out redirect URL : 아래 옵션 중 Grafana 환경에 적합한 1개 옵션 입력
Grafana Cloud : https://<Grafana_ORG>.grafana.net/logout
Grafana On-premise : http://<on-premises_grafana_server_domain_or_ip>:<grafana_server_port>/logout

Grafana 선택 옵션 :
"Allow sign up" :
Okta를 통한 인증 계정이 Grafana에 존재하지 않을 경우, 자동으로 계정을 생성 하는 옵션입니다.
"Auto login" :
Grafana 접속 시 인증 선택 페이지가 아닌 Okta 인증 페이지로 바로 리다이렉션 되어 인증 받도록 구성하는 옵션입니다.
Okta 인증 정보 입력 완료 후 "Save and enable" 선택
"Authentication" 항목에서 우측 상단 "Auth settings"을 선택합니다.
"Enable insecure email lookup" 설정 옵션을 활성화 합니다.
3. 사용자 인증 경험
1) Grafana Web 인증
2) Okta 대시보드를 통한 인증
Ⅱ. Okta-Grafana 권한 구성 (Basic Role)
해당 권한 구성은 Okta 인증 사용자 Basic Role을 관리하고 적용하기 위한 구성입니다.
Okta를 통해 Grafana 인증한 사용자는 별도의 권한이 부여됩니다. 기존의 Grafana 계정도 Okta 인증 시 Okta에서 전달하는 사용자 Basic Role이 적용되며, "Okta" Orgin 계정은 Grafana 관리 콘솔에서 변경이 불가능합니다.

아래는 예시 입니다. (ABAC 구성)
(기존) Grafana 계정 권한 - Role : admin / Origin : grafana.com

Okta에서 동일 계정의 Role을 "Editor" 권한으로 구성

Okta 인증 이후 "Origin"과 Okta에서 구성한 Role 부여로 정보가 변경 사항 확인.
Okta 인증 - Role : Editor / Origin : Okta

인증 Origin 주체에 따라 사용자는 Basic Role이 구성되기 때문에 Grafana 사용자 관리 콘솔에서 Basic Role 업데이트 하여도 Okta 인증 사용자는 Grafana 관리 콘솔에서 업데이트 된 Role이 적용되지 않습니다. Grafana 관리 콘솔에서 부여한 Basic Role이 업데이트 되기 위해서는 사용자가 Grafana ID/FW의 Default 인증으로 로그인 성공 시 적용됩니다.
1. 개별 사용자 Role 구성 (ABAC)
1) Okta Default User의 Profile 추가
경로 : "Directory" → "Profile Editor" → Okta "User (default)" 선택
"Add Attribute" 선택
아래 옵션 입력 및 설정 → "Save" 선택
Display name : Grafana Role
Variable name : grafana_role
Enum : (Enable) Define enumerated list of values
Attribute members
Display name / Value
Viewer Value / Viewer
Editor Value / Editor
Admin Value / Admin
2) Grafana Application의 User Profile 추가
경로 : "Directory" → "Profile Editor" 선택

"Users" 항목에서 "Grafana" 검색 후 해당 Application 선택
"Add Attribute" 선택
옵션 입력 및 선택 항목 → "Save" 선택
Display name : Grafana Role
Variable name : grafana_role
Enum : (Enable) Define enumerated list of values
Attribute members
Display name / Value
Viewer Value / Viewer
Editor Value / Editor
Admin Value / Admin
Attributes 매핑
"Mappings" 옵션에서 "Configure User mappings" 선택
"Okta User to Grafana-OIDC" 항목 선택
맨 아래의 Grafana "grafana_role" 속성 정보와 Okta의 "grafana_role" 속성 필드랑 매핑합니다.
매핑 옵션을 "Apply mapping on user create and update" 항목으로 변경
"Save Mappings" 선택
"Apply updates now" 선택
3) Grafana 관리 콘솔에서 Role 속성 구성
"Administration" → "Authentication" → " Okta" 선택
"User mapping" 옵션 중, "Role attribute path" 항목에 "grafana_role" 입력 후 "Save" 선택
4) Okta에서 사용자 할당 및 Grafana Role 적용
"Applications" → "Applications" → "Grafana" 검색 후 Grafana Application 선택
"Assignments" → "Assign" 옵션 중, "Assign to People" 선택
Application 할당할 사용자 검색 후 해당 사용자 "Assign" 선택
사용자 속성 필드 중, Grafana Role에 대하여 사용자에게 할당할 Basic Role을 선택 후 "Save and Go Back" 선택
"Done" 선택
2. 그룹 사용자 Role 구성 (RBAC)
1) Okta 그룹 생성 및 사용자 할당
"Directory" → "Group" → "Add group" 선택
Grafana Role을 부여하고 식별하기 위한 그룹명을 입력하고 "Save" 선택합니다.
동일한 방법으로 3가지 Basic Role의 그룹을 생성합니다.
생성 완료 되었다면, 각 그룹(Basic Role)에 사용자를 할당합니다.
그룹 선택 후 "Assign people" 선택합니다.
할당하고자 하는 사용자들에 대하여 우측에 "+" 버튼을 선택하여 등록 후 상단의 "Done"을 선택합니다.
2) Application 그룹 할당
"Application" → "Application" 에서 Grafana Application을 검색 및 선택합니다.
"Assignments" 항목에서 "Assign" 옵션 중, "Assign to Groups" 선택합니다.
위에서 생성한 Grafana 그룹명을 검색 후 Role 구성의 그룹에 대하여 "Assign"을 선택합니다.
Grafana 그룹이 모두 "Assigned" 되면 하단에 "Done"을 선택합니다.
3) Okta OIDC Token에 사용자 그룹 Claims 구성
"Sign On" 항목에서 "OpenID Connect ID Token"에 "Edit" 선택합니다.
"Groups claim filter" 항목에 대한 옵션과 Value를 입력 후 "Save" 선택합니다.
Option : Matches regex
Value : .*Grafana.*
4) Okta 그룹명에 대한 Grafana 그룹 Role 구성
Grafana 관리 콘솔에서 "Administration" → "Authentication" → "Okta" 선택합니다.
"User mapping" 옵션 중, "Role attribute path"에 아래 항목을 입력합니다.
위의 Value는 예시로 구성한 Grafana Okta 그룹을 기준으로 생성한 Role 매핑 Value입니다.
다른 그룹명으로 생성하였을 경우, 생성한 그룹으로 매칭 값을 변경하여 입력하시기 바랍니다.
Ⅲ. Teams 동기화 구성 (Fixed Roles)
해당 가이드는 상단의 권한 구성에서 생성한 Okta 그룹(Grafana_Admin_Role_Group)에 대하여 Grafana Teams 동기화 구성의예시입니다.
1. Okta 에서 Grafana Application 그룹 할당
"Applications" → "Applications" → "Grafana" Application 선택 → "Assignments" → Groups Assign
2. Grafana Teams 구성 설정
"Administration" → "Users and access" → "Teams" → 동기화 구성할 팀 선택
"External group sync" → "Add group" 선택
Okta 그룹명(Grafana_Admin_Role_Group)을 입력 후 "Add group" 선택
"팀 동기화 구성"의 중복 그룹 사용자 할당 및 그룹 변경 사용자에 대한 Grafana Teams 추가/삭제
Okta 중복 그룹 사용자
Grafana Teams 구성원 현황
![]()
Okta 사용자 중복 그룹 할당
![]()
Okta 사용자 인증 후 Grafana Teams 매핑구성원 추가
![]()
Okta에서 사용자의 그룹(Grafana_Editor_Role_Group) 제거
![]()
Okta에서 제거 된 그룹에 대하여 매핑 된 Grafana Teams에서 구성원 자동 삭제
Okta 인증 세션이 존재하는 경우, 기존의 그룹 정보가 포함되어 있기 때문에 Okta에서 사용자의 그룹을 삭제하여도 사용자가 Okta 재 인증을 받기 전엔 동일 그룹 정보가 존재합니다.
즉, 변경된 그룹 정보가 Grafana Teams 반영되기 위해서는 Okta 및 Grafana 모두 로그아웃 이후에 재인증을 받아야 합니다.
Last updated


















































