首页 > 解决方案 > .NET Core API Azure B2C 身份验证配置

问题描述

在 microsoft 文档中,我们可以找到 b2c 身份验证配置的示例。

  services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
           .AddMicrosoftIdentityWebApi(options =>
  {
      Configuration.Bind("AzureAdB2C", options);

      options.TokenValidationParameters.NameClaimType = "name";
  },
      options => { Configuration.Bind("AzureAdB2C", options); });

从中获取配置的 appsettings 如下所示:

 "AzureAdB2C": {
    "Instance": "https://fabrikamb2c.b2clogin.com",
    "ClientId": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6",
    "Domain": "fabrikamb2c.onmicrosoft.com",
    "SignedOutCallbackPath": "/signout/B2C_1_susi_reset_v2",
    "SignUpSignInPolicyId": "B2C_1_susi_reset_v2"
    //"CallbackPath": "/signin/B2C_1_sign_up_in"  // defaults to /signin-oidc
  },
  1. 为什么我们要先做Configuration.Bind("AzureAdB2C", options); 当此选项的 JwtBearerOptions 类型与我们在应用程序设置中的配置完全不匹配时?(Configuration.Bind("AzureAdB2C", options);的第二次出现更有意义,因为 options 具有 MicrosoftIdentityOptions 类型)

  2. 在这种身份验证中,我们应该在 API 中的哪里定义身份验证范围?

标签: c#asp.net-coreauthenticationazure-active-directoryazure-ad-b2c

解决方案


不完全理解这个问题,但是:

Configuration.Bind("AzureAdB2C", options); });

是设置 B2C 身份验证(与 Azure AD 相对)。

有两个独立的项目。范围进入 ToDoList 项目而不是 WebApp 项目

“在 appsettings.json 文件中添加部分名称 TodoList 并添加键 TodoListScope、TodoListBaseAddress”。


推荐阅读