Azure b2c .Net core backend is always giving a 401, front react access token front end
我有一个反应前端,它位于使用 azure b2c 登录的后面,如果用户在我的租户中注册,它允许用户登录。
然后我向我的支持者发送了一个访问令牌,我使用"react-aad-msal"接收该令牌:
1 2 3 | signInAuthProvider.getAccessToken({ scopes: ["https://tenantname.onmicrosoft.com/api/scope_name"], }); |
当我通过 Bearer-auth 标头将此令牌发送到我的 .net 核心 3.1 后端时,我收到 401。
我正在使用 addazureadbearer 服务:
1 2 | services.AddAuthentication(AzureADDefaults.JwtBearerAuthenticationScheme) .AddAzureADBearer(options => Configuration.Bind("AzureAd", options)); |
我的配置部分看起来像这样:
1 2 3 4 5 | "AzureAd": { "Instance":"https://login.microsoftonline.com/tenantname", "TenantId":"tenantid", "ClientId":"clientid", "Audience":"https://tenantname.onmicrosoft.com/api/api.access" |
}
我相信它正在做某种交叉检查,因为我得到一个 401 而不是能够连接到 azure 的错误。
您需要使用 b2c 进行身份验证,而不是使用 AAD
1 2 3 4 5 6 7 8 | { "AzureAdB2C": { "Instance":"https://<your tenant name>.b2clogin.com", "ClientId":" your client id", "Domain":"your tenant domain", "TenantId":"your tenant id", "SignUpSignInPolicyId":"your policy name" } |
请参考这个 github on .net core web API in b2c