Azure b2c 第三方门户SSO集成及enrolment流程问询
Azure AD B2C 与第三方门户SSO集成的逻辑与自动登录可行性
一、带Enrolment绑号的集成流程运作逻辑
先对齐角色边界:
- 你方的Azure AD B2C是统一身份提供商(IdP),为所有授权应用提供身份校验服务
- 你方自有站点、第三方门户均为Azure AD B2C的依赖方(RP/SP)
整个流程分为两个阶段:
1. 首次绑定(Enrolment)阶段
- 用户在第三方门户点击「enrolment」按钮,第三方门户向Azure AD B2C的授权端点发起绑定请求,请求会携带自身已在B2C完成注册的客户端ID、允许跳转的回调地址参数
- 若用户当前无有效Azure B2C会话,会跳转至B2C统一登录页要求输入你方的B2C凭证;若已有有效会话(比如刚在你方自有站点完成登录),该步骤会自动跳过
- 身份校验通过后,B2C返回携带用户唯一永久标识
oid的ID令牌给第三方门户 - 第三方门户将返回的
oid与自身系统内的用户账号ID做映射存储,绑定关系正式生效。这里优先用oid而非令牌里的sub字段做主键的原因是,sub是和第三方门户在B2C的客户端ID绑定的,跨应用的sub不唯一,oid是B2C租户内用户的全局唯一永久标识,不会随依赖方变化,避免映射错乱。 如果用户还没有第三方门户的账号,也可在该步骤同步完成账号新建后再绑定。
2. 绑定完成后的常规SSO阶段(你方站点发起场景)
- 已登录你方自有站点的用户,点击跳转至第三方门户的入口
- 你方站点直接向Azure B2C授权端点发起请求,指定目标第三方门户的客户端ID、回调地址,可附带
prompt=none参数要求静默认证 - 因用户已有有效B2C会话,B2C直接生成合法的身份令牌,重定向回第三方门户的回调地址
- 第三方门户校验令牌的签名、受众、有效期等参数无误后,根据存储的
oid映射关系匹配本地账号,直接完成登录,跳转至用户指定的业务页面。
二、已在你方站点登录时,能否实现自动登录第三方门户
只要满足以下配置要求,完全可以实现无额外操作的自动登录:
- Azure B2C的全局SSO会话策略配置为跨应用共享:默认B2C的会话Cookie托管在B2C的域名下,只要所有依赖方走同一B2C授权流程,就可以复用同一登录会话,不需要重复校验凭证
- 第三方门户的认证策略未配置强制二次校验:比如不会要求所有SSO请求都强制触发MFA、密码重输等流程(若要求MFA,只要用户在首次登录时已完成MFA校验,后续会话有效期内也可自动登录)
- 你方发起跳转时添加静默认证参数:通过
prompt=none参数要求B2C跳过所有交互环节,直接返回令牌,全程不会弹出任何登录页面,用户仅会看到页面从你方站点跳转到第三方门户的业务页面。
注意:如果用户的Azure B2C会话已经过期,该自动流程会被打断,跳转回B2C登录页要求重新校验凭证,属于正常的安全校验逻辑。
内容的提问来源于stack exchange,提问作者Tommy Wang
相关产品推荐
相关产品推荐

