Azure B2C 自定义策略 + OpenID 连接 C# 库

标签 azure openid-connect azure-ad-b2c

我设置了 Azure B2C 和自定义策略,在 Azure 门户中它指出发现端点是:

https://TENANT_NAME.b2clogin.com/TENANT_NAME.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_signup_signin

但是,通过 OpenId 库 (Microsoft.AspNetCore.Authentication.OpenIdConnect) 设置时:

builder.AddOpenIdConnect(openIdProvider.IdentityProviderId, openIdProvider.IdentityProviderName,
options =>
{
    options.SignInScheme = Constants.SignInScheme;
    options.SignOutScheme = IdentityServerConstants.SignoutScheme;
    options.Authority = "https://TENANT_NAME.b2clogin.com/TENANT_NAME.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_signup_signin"
    options.ClientId = openIdProvider.OpenIdClientId;
    options.ClientSecret = openIdProvider.OpenIdClientSecret;
})

我收到以下错误:

InvalidOperationException:IDX20803:无法从以下位置获取配置:'https://TENANT_NAME.b2clogin.com/TENANT_NAME.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_signup_signin/.well-known/openid-configuration'。

由于某种原因,它附加了“/.well-known/openid-configuration”,这在 Azure AD 上工作得非常好,因为我没有使用查询字符串参数。我假设库正在附加该字符串,因为网址不以“/.well-known/openid-configuration”结尾。

有办法解决这个问题吗?或者强制 OpenId 使用我指定的实际 URL?

有办法解决这个问题吗?我必须使用库的 2.2.0 ( https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.OpenIdConnect/2.2.0 )。

最佳答案

您可以使用替代 URL 格式,如果您使用“纯”OpenIdConnect,该格式效果很好。

// Authority
https://tenant_name.b2clogin.com/TENANT_NAME.onmicrosoft.com/B2C_1A_signup_signin/v2.0/

// OpenIdConnect Config URL
https://tenant_name.b2clogin.com/TENANT_NAME.onmicrosoft.com/B2C_1A_signup_signin/v2.0/.well-known/openid-configuration

关于Azure B2C 自定义策略 + OpenID 连接 C# 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62779898/

相关文章:

azure - Azure.Messaging.ServiceBus 7.8.0 中不存在 ServiceBusClient

azure - 重命名 Azure 函数

c# - 在联合身份验证后获取用户声明并将其包含在请求 JWT 中

reactjs - 是否可以使用 IDP 独立代码在 ReactJS 中实现 open id connect SSO?

azure - B2C 注册页面中的自定义属性

Azure B2C 自定义策略 : How do you reset the TOTP settings in the event that a user lost access to there authenticator app?

azure - 多项 Lucene 查询返回 0 个结果

c# - 在 asp.net mvc core 2 OpenIdConnect 中关闭 AutomaticChallenge

使用自定义属性时出现 Azure B2c 错误 'Unable to validate the information provided.'

azure - 在禁用共享 key 访问的情况下管理 ADLSGen2 ACL?