gpt4 book ai didi

OAuth-2.0/JWT-关于何时使用作用域与角色的指南

转载 作者:行者123 更新时间:2023-12-03 15:48:33 25 4
gpt4 key购买 nike

我对与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中,我找不到太多有关角色声明的引用,而范围在全文中都提到了。

最佳答案

作用域和角色/组之间最显着的区别是,由确定允许客户端执行的操作。

资源范围由资源所有者(用户)通过同意屏幕授予应用程序。例如,客户端应用程序可以发布到我的时间轴或查看我的 friend 列表。

用户角色和组由Azure AD目录的管理员分配。例如,用户可以提交费用报告或用户可以批准费用报告。

范围通常在外部应用程序希望通过公开的API访问用户数据时使用。他们确定客户端应用程序可以做什么。

基于角色或组的访问通常用于应用程序中,以确定用户可以执行的操作。

关于OAuth-2.0/JWT-关于何时使用作用域与角色的指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60942114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com