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,然后开始一次正常的授权码流程。