【问题标题】:Azure AD B2C - Combine custom flows with built-in user flowsAzure AD B2C - 将自定义流与内置用户流相结合
【发布时间】:2021-03-03 00:49:20
【问题描述】:

我有一个使用 Azure AD B2C 对用户进行身份验证的 asp.net MVC 应用程序。

到目前为止,我们只使用内置用户流程进行注册和登录,但现在我为特定场景创建了自定义流程。我将此入门文档用于自定义流程:https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-get-started

我的问题是内置流程生成的令牌由与新自定义流程生成的令牌不同的密钥签名。

在 startup.cs 中,我引用默认内置流的 MetaDataAddress(其中包含对签名密钥的引用)

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
    MetadataAddress = https://contoso.b2clogin.com/contoso.onmicrosoft.com/[built-in-flow]/v2.0/.well-known/openid-configuration,
}

验证新的自定义流令牌时,它不应验证到上面定义的元数据地址中的密钥,而是验证到不同的签名密钥。

如何确保对内置流和自定义流正确验证令牌? 要么 如何确保在自定义流程和内置流程中创建的令牌使用相同的签名密钥。

【问题讨论】:

  • 添加一个IF语句来根据policyId设置metadataAddress怎么样?您不能让他们使用相同的签名密钥。

标签: asp.net-mvc openid-connect azure-ad-b2c


【解决方案1】:

不支持在用户流和自定义策略之间无缝工作。自定义策略中调用了会话管理技术配置文件 - see more on technical profile。或访问here to read and different session managements。两个解决方案之间没有 UX 来连接键。

调用 Azure AD B2C(登录端点)的应用程序也不同 - 它必须在向 Azure AD B2C 端点提交请求时明确需要添加 policyID。

我见过的混合使用用户流和自定义策略的最常见场景:

  • 将用户流程用于密码重置流程和自定义策略与 SUSI(注册登录)
  • 部署到独立运营的不同部门(两者之间不需要 SSO)

【讨论】:

    猜你喜欢
    • 2022-10-06
    • 2016-09-12
    • 2021-02-08
    • 2020-01-28
    • 1970-01-01
    • 2022-10-02
    • 1970-01-01
    • 2018-03-20
    • 2021-12-09
    相关资源
    最近更新 更多