【发布时间】:2020-02-25 05:18:20
【问题描述】:
如何在 ASP.NET 核心 WEB API 中验证 Azure AD (v2!!!) 生成的 OpenID Connect 访问令牌?
场景是:
我有一个 Angular 8 客户端应用程序,它在登录后获取 OpenID Connect 访问令牌。 客户端可以连同访问令牌一起调用 API。 但问题是,我应该如何在 ASP.NET 核心 API 中验证该 Token?
使用此代码,我得到一个没有任何描述的授权错误。
services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
.AddAzureADBearer(options => Configuration.Bind("AzureAd", options));
services.AddCors(options =>
{
options.AddDefaultPolicy(
builder =>
{
builder.AllowAnyOrigin();
builder.AllowAnyMethod();
builder.AllowAnyOrigin();
builder.AllowAnyHeader();
});
});
Microsoft.AspNetCore.Authorization.DefaultAuthorizationService:信息:授权失败。 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:信息:过滤器“Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter”处的请求授权失败。 Microsoft.AspNetCore.Mvc.ChallengeResult:信息:使用身份验证方案执行 ChallengeResult ()。 Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler:Information: AuthenticationScheme: AzureADJwtBearer 受到挑战。
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "localhost",
"TenantId": "myTenantId",
"ClientId": "myClientId"
},
【问题讨论】:
-
请验证配置文件
标签: c# angular azure-active-directory asp.net-core-webapi openid-connect