我正在开发OAuth2.0服务器。什么应该是刷新令牌的格式以及应该使用哪种加密算法进行加密?
答案 0 :(得分:2)
OAuth 2.0不会对令牌格式或加密实施任何限制。在规范中完全忽略了加密,因为通信应该用TLS保护。
此外 - 如果您不必,请不要实施自己。如果您的资金允许,请选择一个开源库甚至是供应商产品。
话虽如此,请查看JWT RFC。这是大多数人使用的格式。您也可以根本不考虑任何格式,只使用不透明的字符串,然后在授权服务器中实现令牌自省。
至于加密 - 任何事情都有。大多数实现支持至少HS256,RS256和ES256用于签署JWT令牌。在大多数现实场景中,您不需要加密令牌,签名就足够了。
答案 1 :(得分:0)
经过一段时间的挣扎,我想通了。有两种方法
在刷新令牌中放置构建访问令牌所需的所有内容(除了可以直接派生/计算的内容),并使用全局或租户级对称密钥加密
优点:
一个。无需存储空间
湾性能更好,因为不需要与DB联系。它只是解密和创建访问令牌
问题/缺陷
一个。没办法跟踪发布的刷新令牌。
湾无法使发布的刷新令牌无效。
在DB中存储与刷新令牌相关的属性,并响应OAuth Server,返回加密的刷新令牌ID。可能存储在DB中的属性是
ID ||到期||令牌数量||主题||客户ID ||自定义属性(如果需要)
我们已经实现了其他属性,但这必须为想要实现自己的刷新令牌流的人提供一些想法