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

时间:2020-07-07 16:33:57

标签: azure openid-connect azure-ad-b2c

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

getUpdates Docs

但是,通过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完美配合,因为我没有使用查询字符串参数。我认为该库将附加该字符串,因为该URL的结尾不是“ /。well-known / openid-configuration ”。

是否可以解决此问题?还是强制OpenId使用我指定的实际URL?

反正有解决此问题的方法吗?我必须使用该库的2.2.0(https://TENANT_NAME.b2clogin.com/TENANT_NAME.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_signup_signin)。

1 个答案:

答案 0 :(得分:1)

您可以使用备用网址格式,如果您使用“纯” 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