You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD B2C结合SAML实现免登录页认证的方法咨询

解决方案:利用Azure AD B2C跨协议SSO会话实现免登

可以实现,不需要自行开发登录页,核心是利用Azure AD B2C的跨协议单点登录(SSO)会话,而非直接使用OIDC访问令牌。以下是具体实现逻辑和步骤:

核心原理

Azure AD B2C的SSO会话是跨OIDC和SAML协议共享的:当用户通过门户应用的OIDC自定义策略完成登录后,B2C会在用户浏览器中设置全局SSO Cookie(如x-ms-cpim-sso)。此时访问QlikSense的SAML认证URL时,B2C会自动识别已有有效SSO会话,跳过登录页直接生成SAML断言并完成认证流程。

具体操作步骤

  1. 确认SSO会话共享配置

    • 确保门户应用的OIDC自定义策略与QlikSense的SAML自定义策略属于同一Azure AD B2C租户,且使用相同的用户池。
    • 检查自定义策略中的会话管理配置:在<UserJourney>的<OrchestrationStep>中,确保<SessionManagement>节点引用的是默认的SSO会话提供者(例如SM-AAD),默认配置无需修改即可实现跨协议SSO。
  2. 触发免登流程
    用户在门户应用登录成功后,直接将用户重定向到你提供的QlikSense SAML认证URL:

    https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/generic/login?EntityId=https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/idp&RelayState=https://<domain>/<PORTAL>
    

    B2C检测到浏览器中的SSO Cookie后,会自动跳过登录页面,完成SAML断言生成并跳转至QlikSense完成认证。

验证与排查

  • 使用浏览器开发者工具查看b2clogin.com域下的Cookie,确认x-ms-cpim-sso等SSO相关Cookie存在且未过期。
  • 若仍出现登录页,检查自定义策略中的<RelyingParty>节点是否禁用了SSO(默认未禁用),或是否存在会话超时、用户池不一致等问题。

备选方案(若SSO会话受限)

如果因业务限制无法依赖浏览器SSO Cookie,可以通过门户应用后端实现静默获取SAML断言:

  • 利用门户应用持有的用户刷新令牌,调用B2C令牌端点获取新的ID令牌。
  • 后端构造SAML认证请求,携带ID令牌以静默方式调用B2C的SAML自定义策略端点,获取SAML断言后传递给QlikSense。
  • 此方案需要后端处理认证请求,复杂度较高,优先推荐SSO会话方式。

内容的提问来源于stack exchange,提问作者Aldo Inácio da Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:50:10