具有多个资源服务器的OAuth 2.0身份验证服务器

具有多个资源服务器的OAuth 2.0身份验证服务器,oauth,oauth-2.0,Oauth,Oauth 2.0,我试图在我们的API中实现oauth2而不是基本的身份验证 我构建了一个身份验证服务器并实现了一个访问令牌 在API#1和API服务器#2中进行验证 所以我的问题是,oauth2如何与多个API一起工作 目前,我可以用一个访问令牌访问所有API,但我想这不应该真的是…,或者我误解了什么 我不确定scopes参数,这更像是一个权限问题,并且没有指定应该向哪个api发出访问令牌。假设您使用一个授权服务器,scopes概念允许您处理这个问题:您可以为每个api定义一个作用域,并让客户端请求一个或两个作

我试图在我们的API中实现
oauth2
而不是基本的身份验证

我构建了一个身份验证服务器并实现了一个访问令牌 在API#1和API服务器#2中进行验证

所以我的问题是,
oauth2
如何与多个API一起工作

目前,我可以用一个访问令牌访问所有API,但我想这不应该真的是…,或者我误解了什么


我不确定scopes参数,这更像是一个权限问题,并且没有指定应该向哪个api发出访问令牌。

假设您使用一个授权服务器,scopes概念允许您处理这个问题:您可以为每个api定义一个作用域,并让客户端请求一个或两个作用域。发布一个与多个作用域关联的访问令牌(即您的例子中的API)是非常有效和实用的OAuth 2.0


访问令牌是基于每个客户端发布的,因此向同一客户端分发不同的访问令牌不会给您带来任何安全优势,除非这两个API由不同的实体控制。在任何情况下,客户机都必须改变其请求方式,这将再次使用作用域来完成。

这正是我想要的答案。所以基本上我必须在授权服务器上定义哪个客户端id可以访问哪个范围?如果我将在授权服务器上定义这一点,为什么客户端会请求特定的作用域(使用scope参数)?我知道哪个访问令牌是从哪个客户端id发出的,在api内的令牌验证期间,我将能够检查客户端是否允许访问xy命名的作用域。如果它对您有效,但可能不满足最终用户向这些客户端授予权限的场景,或者客户端可能选择要求更少权限的场景如果他们不需要所有可能的令牌(例如,临时或由于客户端更改),那么我应该如何保护不同客户端的访问令牌?如果有人已通过其服务(@see)从另一个用户处获得访问令牌,则访问令牌应仅对为其颁发访问令牌的资源服务器有效。我的资源服务器(API#1)在每次请求期间都会验证access#U令牌,但它也会接受为RML颁发的令牌,在5分钟后无法编辑上面的注释。这里再次说明:但是我应该如何保护不同客户端的访问令牌?如果有人已通过其服务(@see)从另一个用户处获得访问令牌,则访问令牌应仅对为其颁发访问令牌的资源服务器有效。我不确定我是否能用作用域解决这个问题。这篇文章明确地说没有任何解决方案。(并且我仅使用隐式授权)添加与访问令牌相关联的
客户机\u id
aud
(即资源服务器标识符)声明可以缓解这一问题,以便资源服务器可以执行必要的检查