이번에는 ArgoCD 대시보드 진입시, Keycloak을 통해 접근하는 방식을 배워보도록 하자!
realm, role 등 Keycloak 관련 용어들 모르면 아래 게시글 참고!
https://dev-shim99.tistory.com/64
[Keycloak] Keycloak 개요
📌 Keycloak이란?오픈소스 ID & Access Management 솔루션OIDC 및 OAuth 2.0, SAML 2.0을 지원하여 많은 시스템에 SSO 및 중앙집중식 사용자 관리를 제공 관련 용어RealmKeycloak의 관리 영역 단위로, 사용자, 클
dev-shim99.tistory.com
일반적으로 같은 조직·유저 그룹을 공유하는 애플리케이션은 단일 Realm에서 여러 Client로 관리하고,
완전 별도 조직이나 고객(테넌트)용이라면 애플리케이션별(또는 테넌트별) Realm 분리를 고려한다.
Grafana때 설정했던 것과 마찬가지로
필자의 경우, 같은 조직에서 여러 애플리케이션을 관리하는 것 고려하여, 단일 Realm에서 Client를 생성해서 진행하도록 하겠다!
📌 Client 생성
해당 부분은 위 링크의 공식문서와 같으므로 참고하여 Client 생성하면 된다!
📌 argocd-secret에 client Secret추가
kubectl patch secret argocd-secret --patch='{"stringData": { "oidc.keycloak.clientSecret": "<REPLACE_WITH_CLIENT_SECRET>" }}'
참고로 client Secret은
Keycloak 대시보드 [Client] > 상단 탭 [Credentials] 에서 확인 가능하다.
📌 ArgoCD ConfigMap 수정
kubectl edit cm argocd-cm
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cm
data:
url: https://<argocd-domain>
oidc.config: |
name: Keycloak
issuer: https://<keycloak-domain>/realms/master
clientID: <client_id>
clientSecret: $oidc.keycloak.clientSecret
requestedScopes: ["openid", "profile", "email", "groups", "offline_access"]
ArgoCD OIDC 설정 requestedScopes에 offline_access scope 누락되는 경우
- Refresh Token이 Online Session에만 유효하도록 제한됨
- Access Token 만료 시 Refresh Token 갱신 실패
- Token refresh 실패 → 강제 로그아웃 발생
⇒ ✅ oidc.config.requestScopes 에 offline_access 추가 !!
📌 ArgoCD RBAC 수정
https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/
위의 내용 참고해서 ArgoCD RBAC을 수정하자!
kubectl edit cm argocd-rbac-cm
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-rbac-cm
data:
policy.csv: |
p, role:viewer, *, *, *, allow
p, role:viewer, *, delete, *, deny
g, admin, role:admin
g, viewer, role:viewer
ArgoCD는 Group이 존재해야 role mapping 가능하므로, Keycloak에서 Group 설정을 꼭 해주자!!!
필자의 경우, 기본 사용자를 viewer group으로 묶고, 특정 사용자를 admin으로 묶었다.
viewer 그룹의 경우 admin과 권한은 같되, 모든 리소스에 대해 delete 권한은 deny를 했다.
kubectl rollout restart deployment argocd-server
짜잔 ~ 설정 끝 🎉
우측 상단에 LOG IN VIA KEYCLOAK 버튼이 생긴 것을 볼 수 있다.
'Operations > Keycloak' 카테고리의 다른 글
[Keycloak] Grafana Keycloak 연동 (0) | 2025.06.15 |
---|---|
[Keycloak] Keycloak 개요 (2) | 2025.06.15 |