【发布时间】:2022-01-06 07:27:00
【问题描述】:
我有一个使用 JWT 身份验证的 asp.net 核心 API。角色用于授权,我不使用范围。 Auth0.com 和 ADFS 都可以正常工作,但是我在使用 AzureAD 时遇到了麻烦。我从 AzureAD 获得了一个 JWT,看起来不错。然而,这会发生:
info: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[2]
Successfully validated the token.
dbug: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[8]
AuthenticationScheme: Bearer was successfully authenticated.
info: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]
Authorization failed.
info: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[13]
AuthenticationScheme: Bearer was forbidden.
我不知道这是什么原因。另外,由于为什么授权失败,我很难获得更多详细信息。
我看到的来自 Auth0.com 和 AAD 的 JWT 之间的唯一区别是缺少“azp”声明和“范围”声明。 AAD 的令牌具有“scp”声明。但是,我找不到任何文档说明这是否会导致这种情况,或者是否有其他原因。
欢迎任何想法,以及如何获得更多细节!谢谢。
【问题讨论】:
标签: c# asp.net-core azure-active-directory jwt