摘要(抱歉,这是一口):
我希望通过OAuth2和JWT为后端系统对系统授权提供便利,方法是使用JWT 'aud‘param指定特定于应用程序的资源(通过JWT授权授予请求向授权服务器),然后使用注册的OAuth2应用程序的OAuth2密钥对OAuth2进行授权服务器签名(或加密),该密钥保存由'aud’param指定的资源,以便被请求令牌的资源服务器能够使用其OAuth2应用程序密钥验证令牌。
我有一个关于OAuth2和JWT后端系统对系统授权的问题.
我们希望利用JWT的OAuth2规范来实现以下目标:
目标是RB具有独立于AS验证JWT的能力。也就是说,RB必须有一种方法来验证RA在请求中发送的JWT。由于发布了由RA发送的JWT,那么AS和RB必须有一个共享的秘密。
在所有资源服务器和授权服务器之间共享一个秘密以用于JWT签名和/或加密,这将是糟糕的安全实践。该解决方案将绕开OAuth2 (授权委托)规范,该规范已经非常努力地试图减轻由大量分布式对称密钥等引起的安全问题。
我的粗略建议是解决以下问题:
这个提议在这里有意义吗?是否有一个更加简单的实现仍然可以满足我的目标并停留在OAuth2规范中?这是否误用了“aud”JWT param?
非常感谢你阅读了这篇文章,也感谢你的帮助。
发布于 2016-01-06 05:46:08
在这种情况下,添加到OAuth2 (https://www.rfc-editor.org/rfc/rfc7662)中的新内省服务将是有用的。它允许您的RB验证RA根据AS转发的访问令牌( JWT)。
这破坏了您的请求,即RB和AS之间没有通信。但这不应该是一个问题,因为这些服务已经相互信任。在RA和RB之间不存在全局已知的对称密钥或隐式信任。
把它插入到你的溪流中:
https://security.stackexchange.com/questions/109832
复制相似问题