Keycloak作为身份代理对接外部IDP实现SSO的场景问题咨询
Keycloak身份代理模式下的跨IDP SSO效果说明
核心结论
当Keycloak仅作为身份代理对接外部IDP时,场景2的免认证直接跳转效果可以实现,完全符合跨系统SSO的预期。
流程逻辑说明
- 用户访问App1时,App1首先向绑定的Keycloak实例发起OIDC/SAML认证请求
- Keycloak检测到当前无用户活跃会话后,会按照配置向对接的外部IDP转发认证请求,该请求会自动携带用户浏览器中外部IDP域名下的会话Cookie
- 外部IDP校验Cookie确认用户已有活跃会话,无需展示登录表单,直接向Keycloak返回授权凭证
- Keycloak完成外部身份到本地用户的映射后,生成自身的认证会话和应用侧需要的Token,跳转回App1完成整个认证流程,全程无用户交互
必要配置注意项
要实现上述无感免登效果,需要避免以下错误配置:
- 不要在Keycloak的外部IDP配置中主动传递
prompt=login参数,否则外部IDP会强制要求用户重新进行身份验证 - 若不需要展示Keycloak自带的登录选择页,需要开启身份提供商的
自动重定向配置,避免流程停留在Keycloak的登录页打断无感体验 - 外部IDP侧的会话有效期规则会直接影响免登效果,若用户的外部IDP会话已过期,仍会触发登录操作
内容的提问来源于stack exchange,提问作者Manikandan Kannan
相关产品推荐
相关产品推荐

