【发布时间】:2020-07-11 12:06:29
【问题描述】:
与 OAuth 2.0 和 JWT 相关但仍然有点令人困惑的一件事是何时使用范围与角色。
我认为一些困惑来自role-based authorization works in ASP.NET Core(这是我工作场所的主要语言/框架)。例如;如果我在我的 JWT 中有如下角色
{
"aud": "test",
"iss": "http://localhost:8080/auth/realms/test/",
"iat": 1585192274,
"nbf": 1585192274,
"exp": 1585196174,
"sub": "12345",
"roles": ["Admin", "SuperUser"]
}
我可以很容易地保护路线而无需做太多事情,例如:
[ApiController]
[Route("api/v{version:apiVersion}/template/test")]
public class TestController : Controller
{
[HttpGet]
[Authorize(Roles = "Admin")]
public IActionResult Get()
{
return Ok("test");
}
}
我可以使用具有 dotnet 授权策略的范围来实现与上述非常相似的东西,但我想知道是否有一些关于是否/何时使用范围或角色的指导,或者这只是一个偏好问题。 ..
我在任何与 OAuth/JWT 相关的 RFC 中都找不到对角色声明的太多引用,而在整个过程中都提到了范围。
【问题讨论】:
标签: oauth-2.0 jwt authorization scopes role-based-access-control