在OAuth2部署的上下文中,我希望向客户端授予一个加密的JWT,该加密JWT具有多个资源服务器的作用域,并且可以由每个资源服务器进行解密,而不依赖于在所有资源服务器之间共享秘密的授权服务器。
是否存在解决此场景的规范?
下一节中的需求指定了一些剩余的约束。
###Requirements###
###An示例使用Case###
我将为授权代码授予(https://www.rfc-editor.org/rfc/rfc6749#section-1.3.1)绘制一个用例,以便进一步演示我的用例。
(...)
在这个系统的实现中,“照片资源”和“朋友资源”分别生活在两个不同的资源服务器上。如上所述,目标是这些资源服务器不共享相同的密钥。
###Possible Solution###
谢谢你读这篇文章。我非常感谢你的任何建议和建议。
发布于 2017-12-29 14:43:41
我读过几次你的问题,因为我遇到了像你这样的“问题”。使用OAuth2与OpenID连接和JWT作为令牌提供的解决方案是正确的。我在媒体上写了一个文章,其中详细描述了如何在OpenID连接中使用OAuth2。如果你有什么问题,请问我。
OAuth2的缺点之一是资源服务器没有规定的方法来验证访问令牌或使用访问令牌来建立用户的身份。
谷歌和其他OAuth2提供商通过提供TokenInfo端点解决了这个问题。资源服务器可以将访问令牌传递给此端点,并返回有关令牌有效性、用户标识、令牌范围和过期时间的信息。在我的例子中,这个端点与授权服务器相对应。

随着ID令牌的引入,这个概念在OpenID连接中得到了扩展。ID令牌是一个签名和可能加密的令牌,它包含用户的标识和范围内的任何声明。

ID令牌是包含身份数据的JSON令牌(JWT)。它由客户端使用,用于获取用户信息,如用户名、电子邮件等。当您有一个资源服务器链,并且一个资源服务器可以是另一个资源服务器的客户端时,这也很有用。
JWT特性使客户端应用程序和资源服务器能够安全地直接获取有关用户的信息,而不必每次都与授权服务器联系。

如果要防止发出过于宽泛的访问令牌,可以在链中的每个点提供授权检查。资源服务器可以是授权服务器的客户端,呈现它的JWT,并为链中的下一个资源服务器请求一个新的JWT。
https://security.stackexchange.com/questions/120217
复制相似问题