首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scopes对多个资源服务器令牌的OAuth2 JWT加密

Scopes对多个资源服务器令牌的OAuth2 JWT加密
EN

Security用户
提问于 2016-04-12 07:59:04
回答 1查看 2.3K关注 0票数 2

在OAuth2部署的上下文中,我希望向客户端授予一个加密的JWT,该加密JWT具有多个资源服务器的作用域,并且可以由每个资源服务器进行解密,而不依赖于在所有资源服务器之间共享秘密的授权服务器。

是否存在解决此场景的规范?

下一节中的需求指定了一些剩余的约束。

###Requirements###

  • 解密必须发生在资源服务器层,而不必将令牌代理回授权服务器(通过令牌内省端点或其他方式)。
  • 资源服务器都必须有不同的密钥,以限制可能导致任何给定密钥被泄露的攻击面。
  • 为了保持与OpenID连接的兼容,JWT必须使用紧凑的格式(这是真的吗,还是OpenID连接可以与JWT (JWS/JWE) JSON序列化格式一起工作?)

###An示例使用Case###

我将为授权代码授予(https://www.rfc-editor.org/rfc/rfc6749#section-1.3.1)绘制一个用例,以便进一步演示我的用例。

  • 作为授权服务器的注册用户
  • 当我第一次访问注册的OAuth2客户端应用程序(与我的用户代理)时
  • 然后,使用授权代码授予(包括scopes="photos.read,photos.write,friends.read")查询所需的查询参数,将我重定向到授权服务器
  • 我应该看到一个授权对话框,请求对以下服务进行委托访问:
  • 读你的照片
  • 代表你上传照片
  • 读你的朋友
  • 当我点击‘授权’
  • 然后,使用授权代码将我重定向回注册的OAuth2客户端应用程序
  • 当OAuth2客户端应用程序系统使用授权代码请求令牌时
  • 然后,OAuth2客户端应用程序系统应该接收具有以下作用域的令牌:
    • photos.read
    • photos.write
    • friends.read

(...)

在这个系统的实现中,“照片资源”和“朋友资源”分别生活在两个不同的资源服务器上。如上所述,目标是这些资源服务器不共享相同的密钥。

###Possible Solution###

  1. 带有多个接收者的JSON序列化(https://www.rfc-editor.org/rfc/rfc7516#appendix-A.4.7)。这违反了上面的要求,因为is使用的是JWE JSON序列化方法,而不是JWE紧凑格式。根据上面的问题,似乎OpenID连接只能使用。如果我的假设是不正确的,那么这也许是一个合理的解决方案?

谢谢你读这篇文章。我非常感谢你的任何建议和建议。

EN

回答 1

Security用户

发布于 2017-12-29 14:43:41

我读过几次你的问题,因为我遇到了像你这样的“问题”。使用OAuth2与OpenID连接和JWT作为令牌提供的解决方案是正确的。我在媒体上写了一个文章,其中详细描述了如何在OpenID连接中使用OAuth2。如果你有什么问题,请问我。

稍后编辑

OAuth2的缺点之一是资源服务器没有规定的方法来验证访问令牌或使用访问令牌来建立用户的身份。

谷歌和其他OAuth2提供商通过提供TokenInfo端点解决了这个问题。资源服务器可以将访问令牌传递给此端点,并返回有关令牌有效性、用户标识、令牌范围和过期时间的信息。在我的例子中,这个端点与授权服务器相对应。

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

ID令牌是包含身份数据的JSON令牌(JWT)。它由客户端使用,用于获取用户信息,如用户名、电子邮件等。当您有一个资源服务器链,并且一个资源服务器可以是另一个资源服务器的客户端时,这也很有用。

JWT特性使客户端应用程序和资源服务器能够安全地直接获取有关用户的信息,而不必每次都与授权服务器联系。

如果要防止发出过于宽泛的访问令牌,可以在链中的每个点提供授权检查。资源服务器可以是授权服务器的客户端,呈现它的JWT,并为链中的下一个资源服务器请求一个新的JWT。

票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/120217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档