Keycloak 설정
config.json
{
"oidc_providers": {
"keycloak": {
"display_name": "Sign in with keycloak",
"provider_url": "https://keycloak.example.com/realms/master",
"client_id": "***",
"client_secret": "***",
"redirect_url": "https://semaphore.example.com/api/auth/oidc/keycloak/redirect"
}
}
}
IdP 시작 로그인
사용자가 Keycloak Account Console 애플리케이션 런처에서 Semaphore를 실행할 수 있도록 하려면, 해당 제공자에 대해 IdP 시작 로그인을 활성화합니다:
config.json
{
"oidc_providers": {
"keycloak": {
"...": "...",
"allow_idp_initiated": true
}
}
}
그런 다음 Keycloak Admin Console에서 클라이언트를 열고 Home URL(Keycloak 19 이상, 이전 버전에서는 Base URL이라고 함)을 다음과 같이 설정합니다:
https://semaphore.example.com/api/auth/oidc/keycloak/initiate
사용자가 런처에서 애플리케이션을 클릭하면 Keycloak은 iss 매개변수와 함께 이 URL로 리디렉션합니다. Semaphore는
provider_url(realm issuer)과 대조하여 iss를 검증하고 일반적인 Authorization Code 흐름을 시작합니다.
관련 GitHub 이슈
- #2308 — Keycloak 서버의 인증서 검증을 비활성화하는 방법
- #2314 — TLS 검증을 비활성화하는 옵션
- #1496 — Semaphore에서 로그아웃할 때 Keycloak 세션에서도 로그아웃