如何实现SSO扇出:单应用对接统一SSO后路由至多客户Identity Provider
这类解决方案是存在的,业内通常称之为IdP代理(身份提供商代理)、SSO联邦代理,完全可以满足你不需要改造现有应用、实现多客户自有IdP对接的需求。
实现逻辑
你只需要将原有应用对接的唯一IdP替换为这个代理层即可,代理层会自动完成请求转发流程:
- 收到应用的SSO认证请求后,引导用户输入邮箱/租户标识,根据预先配置的「邮箱域名-客户IdP」映射规则,自动将认证请求路由到对应用户的自有IdP
- 待客户侧IdP完成认证返回凭证后,代理层会将凭证转换为你的应用可识别的统一格式,回传给应用完成认证,全程应用不需要感知后端对接的IdP差异
可选方案
开源方案
Keycloak:是目前使用最广泛的开源身份管理工具,原生支持IdP代理能力,可直接配置多上游IdP,并开启基于邮箱域名的自动路由功能,仅需替换应用原有SSO配置即可对接,无需额外开发- 轻量自研:如果有基础开发能力,也可以基于Authlib等身份类开发库搭建极简代理服务,自定义路由规则,适配特殊业务需求
商用方案
- 国内云厂商身份服务:阿里云IDaaS、腾讯云数字身份管控平台等公有云身份服务,都内置了多IdP联邦和路由能力,开箱即用,无需自行运维
- 第三方身份服务商:Okta、Auth0等厂商的企业级身份服务,同样支持IdP代理与域名路由规则配置,自带合规审计、多协议适配能力,适合对稳定性、合规要求高的场景
对接时需确保代理层返回的令牌签名算法、声明字段与原有应用适配的IdP输出格式完全一致,即可实现应用零改造接入
内容的提问来源于stack exchange,提问作者Guy Adams
相关产品推荐
相关产品推荐

