0

我有一个反应前端,它位于使用 azure b2c 登录的后面,如果用户在我的租户中注册,它允许用户登录。

然后我向我的支持发送了一个访问令牌,我使用“react-aad-msal”接收到该令牌:

signInAuthProvider.getAccessToken({
  scopes: ["https://tenantname.onmicrosoft.com/api/scope_name"],
});

当我通过 Bearer-auth 标头将此令牌发送到我的 .net core 3.1 后端时,我收到 401。

我正在使用 addazureadbearer 服务:

services.AddAuthentication(AzureADDefaults.JwtBearerAuthenticationScheme)
            .AddAzureADBearer(options => Configuration.Bind("AzureAd", options));

我的配置部分看起来像这样:

  "AzureAd": {
"Instance": "https://login.microsoftonline.com/tenantname",
"TenantId": "tenantid",
"ClientId": "clientid",
"Audience": "https://tenantname.onmicrosoft.com/api/api.access"

}

我相信它正在做某种交叉检查,因为我得到一个 401 而不是能够连接到 azure 的错误。

4

1 回答 1

1

您需要使用 b2c 进行身份验证,而不是使用 AAD

{
      "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

于 2020-07-29T19:01:12.237 回答