【发布时间】: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