OAuth2.0如何实现授权?

问题描述 投票:2回答:2

我正在研究该主题,据我了解,OAuth 2.0应该是Web服务器中用户授权的协议。在身份验证方面,它非常简单明了-客户端向身份提供者发送请求,接收包含其他信息的令牌(例如JWT),然后他将该令牌发送给应用服务器,应用服务器使用以下命令验证令牌身份提供者。一切都很好,直到这里。我的问题是授权-知道用户在应用服务器中拥有哪些权限。据我了解,请求的“作用域”部分是指用户允许应用服务器对身份提供者中其实体执行的操作,因此它是授权,但仅授权应用服务器。协议是否包含应用服务器授权客户端的任何方式,还是假设每个用户的角色和作用域之类的数据都将由应用服务器管理?我想这样的数据可以由身份提供者在令牌上发送,但是如何用身份提供者管理每个用户的权限?它是协议的一部分吗?如果不是,为什么将其称为“授权协议”?

authentication oauth-2.0 authorization
2个回答
2
投票

OAuth2的目的是允许客户端应用程序代表用户调用API服务器。范围定义了客户端应用程序可以对该API服务器上的用户数据执行的操作。这被称为委托授权,因为用户将某些权限委托给客户端应用程序。

现在,某些授权服务器允许您定义资源服务器的角色,并将这些角色作为声明包含在访问令牌中。授权服务器和资源服务器之间的隐式契约是如何解释这些角色的。角色不属于OAuth2 RFC


0
投票

除了MvdD所说的,授权是指用户向客户端应用程序授予对该用户拥有的受保护资源的某些访问权限。

[将用户发送到授权服务器进行身份验证时,授权服务器应该询问以下内容:“是否允许此客户端应用程序访问受保护的资源?”有时,您会看到“ X应用程序希望查看您的电子邮件,地址,电话号码...”

范围指定了允许的操作。允许客户端应用访问受保护资源的访问令牌。资源服务器应仅允许与访问令牌中的范围相关联的操作。

© www.soinside.com 2019 - 2024. All rights reserved.