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 の管理コンソールでクライアントを開き、Home URL(Keycloak 19 以降。古いバージョンでは Base URL と呼ばれます)を次のように設定します。
https://semaphore.example.com/api/auth/oidc/keycloak/initiate
ユーザーがランチャーでアプリケーションをクリックすると、Keycloak は iss パラメータを付けてこの URL にリダイレクトします。Semaphore は
iss を provider_url(レルムの issuer)と照合して検証し、通常の認可コードフローを開始します。
関連する GitHub Issue
- #2308 — Keycloak サーバーの証明書検証を無効にする方法
- #2314 — TLS 検証を無効にするオプション
- #1496 — Semaphore からログアウトしたときに Keycloak セッションからもログアウトする