【发布时间】:2023-03-21 04:23:01
【问题描述】:
我有一个使用 IdentityServer4 作为登录服务器的 ASP.NET Core 客户端应用程序。客户端可以登录使用属性[Authorize] 装饰控制器,但如果我使用带有角色[Authorize(Roles = "test")] 的属性,我会得到一个Access-Denied
但是,当我解析 JWT 时,我可以看到用户分配了正确的角色。
{
"nbf": xxx,
"exp": xxx,
"iss": "xxx",
"aud": [
"xxx",
"xxx"
],
"client_id": "xxx",
"sub": "xxx",
"auth_time": xxx,
"idp": "xxx",
"email": "xxx",
"role": "test", <-------------------------------
"scope": [
"openid",
"profile",
"xxx",
"xxx"
],
"amr": [
"xxx"
]
}
【问题讨论】:
-
可能会显示一个带有声明的示例用户,当您使用快速入门时,您可能会拥有配置。您是否定义了任何策略?不妨看看 PolicyServer.Local,它非常轻量级,但也是实现角色的一种简单有效的方式。
-
@SergSam 策略是一个高级步骤。首先,OP 必须确保他在 Web 应用程序中的身份在其中携带角色。
标签: c# jwt identityserver4 access-token asp.net-core-2.1