Azure AD B2C 代码示例不提供令牌验证选项

Azure AD B2C code example does not provide token validation option

我了解 Microsoft 强调正确的令牌验证。

以下代码示例(link 包括确切的代码行)不包括令牌验证:

https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/blob/master/4-WebApp-your-API/4-2-B2C/Client/Startup.cs#L44

            services.AddMicrosoftIdentityWebAppAuthentication(Configuration, Constants.AzureAdB2C)
                    .EnableTokenAcquisitionToCallDownstreamApi(new string[] { Configuration["TodoList:TodoListScope"] })
                    .AddInMemoryTokenCaches();

我如何改进上面的代码行,以便它可以验证租户 ID 声明?

• 要验证在 Asp.Net 中从 Azure AD B2C 收到的令牌,您必须包含“TokenValidationParameters”值并在“Startup.cs”文件中相应地定义对收到的令牌声明的验证网络 API。请在“Startup.cs”文件中找到以下示例代码以进行令牌验证,以使用 Microsoft Identity 平台保护 Web API:-

   services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
      .AddMicrosoftIdentityWebApi(options =>
   {
        Configuration.Bind("AzureAdB2C", options);
      options.TokenValidationParameters.ValidIssuers = new[] { /* list of valid issuers */ };
      options.TokenValidationParameters.ValidAudiences = new[] { /* list of valid audiences */};
   },
       options => { Configuration.Bind("AzureAdB2C", options); });

完成上述操作后,在 Configure 方法中的 app.UseMvc() 之前添加方法 app.UseAuthentication(),如下所示:-

 ‘ app.UseAuthentication();
   app.UseMvc(); ‘

因此,您可以在 Asp.Net Web API 中添加令牌验证参数以验证租户 ID 声明。有关这方面的更多详细信息,请参阅下面的文档链接:-

https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/4-WebApp-your-API/4-2-B2C

https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-protected-web-api-app-configuration#token-validation