【发布时间】:2021-06-03 13:46:03
【问题描述】:
我有一个使用 ASP.NET Core 构建的 Web API。我有一个会调用这个 API 的 React 应用程序。使用 AAD B2C 管理身份。我遇到了 API 无法识别应用生成的不记名令牌的问题。
我确信这与我的设置有关,因为令牌本身具有我需要的所有声明(由 JWT.io 解码)。但是,当我通过 .NET Core 中的代码传递它以允许授权时,ClaimsIdentity 什么都没有,也不包含任何用户信息。
我正在使用以下代码行设置实例:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(options =>
{
configuration.Bind("AzureAdClient", options);
options.TokenValidationParameters.NameClaimType = "name";
}, options => { configuration.Bind("AzureAdClient", options); });
我也有如下配置:
"AzureAdClient": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "somename.onmicrosoft.com",
"ClientId": "guid here",
"TenantId": "guid here",
"Audience": "https://somename.onmicrosoft.com/tenants-api",
"SignUpSignInPolicyId": "B2C_1_RwSignIn"
}
我在这里做错了吗?
【问题讨论】:
-
报告了什么错误?
-
它没有报告错误,我的用户 claimprincipal 只是显示为空。但是,我使用另一种方法解决了这个问题。在这里发布答案。
标签: azure-ad-b2c