CoudNet@ 팀의 가시다님께서 리딩하시는 CI/CD Study 5주차 스터디 내용 정리
이번 주차도 마찬가지로 '예제로 배우는 ArgoCD 책' 기반으로 학습했습니다. 이번 글에서는 ArgoCD SSO에 대해서 학습한 내용을 서술하겠습니다.
1. ArgoCD SSO
SSO (Single-Sign-On) 를 사용하면 마스터 로그인을 할 수 있으며,
이를 기반으로 다른 독립적인 애플리케이션에 대한 권한을 부여받을 수 있습니다. ArgoCD 는 UI 와 CLI 에서 SSO 를 지원합니다.
SSO를 활성화한 상태에서 로그인 할수 있는 로컬 계정이 없고 관리자가 비활성화된 경우, 사용자/비밀번호 입력 양식이 UI에서 자동으로 제거되고 SSO를 통한 로그인 버튼만 남게 됩니다.
ArgoCD SSO 적용 방안 2가지
1. Dex OIDC 공급자 2. Dex 설치 없이 다른 OIDC 공급자 사용
2. Keycloak
2.1. 소개
애플리케이션에 초점을 맞춘 오픈 소스 ID 및 접근(권한) 관리 도구
- Keycloak 은 암호 복구, 주기적인 암호 업데이트 설정, 이용 약관 동의 등과 같은 다양한 기능을 제공
- Keycloak 을 통해 인증을 수행하면 애플리케이션에서 자격증명을 관리하지 않아도 됨 - Keycloak 은 세션 관리 및 SSO Single Sign-On 기능을 제공해 사용자가 한 번만 인증하면 여러 애플리케이션에 접근 가능 - 사용자와 관리자 모두 사용자가 인증된 위치를 정확하게 파악할 수 있으며 필요한 경우 원격으로 세션을 종료 가능 - OAuth 2.0, OpenID Connect, SAML 2.0을 지원하는 업계 표준 프로토콜 기반
- ID 브로커링 identity brokering 기능을 통해 소셜 네트워크 또는 다른 엔터프라이즈 ID 공급자의 기존 사용자 데이터를 연동 가능
2.2. Keycloak 배포
ID, PW 를 admin/admin 으로 배포
# 도커로 기본 설정 배포
docker run -d \
--name dev-keycloak \
-p 8080:8080 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
quay.io/keycloak/keycloak:22.0.0 \
start-dev \
--hostname-strict=false \
--http-enabled=true
# Keycloak 접근
open http://localhost:8080/admin
2.3. SSO 를 위한 신규 유저 생성
Keycloak 접속 후 왼쪽 메뉴에서 Users 를 선택하여 새로운 유저를 생성할 수 있습니다.
그 후 bob 유저에 대해 비밀번호를 설정해줍니다.
Temporary 옵션은 bob 유저 첫 로그인 후 강제 비밀번호 재설정 옵션인데, 실습인 관계로 설정하지 않았습니다.
2.4. Keycloak Client 생성 - ArgoCD
Keycloack 에서 ArgoCD SSO 설정을 위한 Client 연동이 필요합니다.
Client 생성
Client ID 는 구분을 위해 argocd 로 지칭합니다.
Capability Config
보안을 위해 Client Authentication 만 활성화해줍니다.
Login Settings
- Root URL : 클라이언트 애플리케이션의 기본(base) 주소 - Home URL : 로그인 성공 후 기본적으로 보내고 싶은 메인 페이지 경로 - Valid Redirect URIs : 로그인 후 리다이렉트 허용 목록 - Valid Post Logout Redirect URIs : 로그아웃 후 리다이렉트 허용 목록 - Web origins : CORS 설정
생성된 Client Secret 확인
클라이언트가 생성되었지만 아무나 Keycloack 으로 인증하면 안되므로 연동을 위해서 시크릿을 확인해야합니다.