使用Azure AD B2C实现第三方站点单点登录并保留自有登录逻辑是否可行
Azure AD B2C 对接自有账号体系实现跨站SSO方案解答
1. 原有登录流程保留的可行性
完全可以实现你要的效果,不需要改动你方站点现有注册、登录逻辑,仅在用户跳转第三方站点时才调用Azure AD B2C做身份校验,现有用户的登录、账号使用体验完全不受影响。
2. 对接逻辑说明
不需要你在新增用户时主动同步全量用户数据到Azure AD B2C,也不需要额外开发Rest API给Azure AD做登录校验,有更轻量化的实现方式:
- 直接配置Azure AD B2C的自定义策略,或者用内置用户流搭配OpenID Connect身份提供方设置,把你方现有站点的身份体系设为Azure AD B2C的信任身份源即可。
- 实际运行流程非常简单:用户点击第三方站点链接触发SSO请求时,Azure AD B2C会重定向到你方站点的校验接口,你方只要判断当前用户是否已在本站登录,如果已登录就按OIDC协议标准返回用户身份凭证给Azure AD B2C,后者再签发合法令牌给第三方站点就能完成登录,全程不需要提前把用户数据存入Azure AD B2C的用户目录。
- 如果想降低后续用户重复触发校验的频次,你也可以选择仅增量同步完成过SSO的用户数据到Azure AD B2C,这是可选优化项,不是强制要求。
3. 方案落地性及优化建议
这个方案完全可落地,是当前需求下改造成本最低的实现方式,只需要新增SSO跳转相关的校验逻辑,不需要动现有账号体系的核心代码。
如果后续你方有扩展多端SSO、对接更多第三方应用的规划,也可以考虑逐步把自有登录逻辑迁移到Azure AD B2C统一托管,后续新增身份验证、权限管控类的需求都不需要自行开发,不过这属于长期迭代方案,当前需求完全可以先按上面的轻量化方式实现。
内容的提问来源于stack exchange,提问作者JamesP
相关产品推荐
相关产品推荐

