您已经询问了HS256优于RS256的好处,例如:
- 认为方便
- 容易理解并开始使用,如果新 到OAuth2/OIDC(与感知的便利)
- 性能(?)
让我们快速浏览一下其中每一个:
知觉方便/理解该怎么做 - 确实是抄袭一个客户tId和clientSecret在应用程序中的配置很容易理解,并且很快完成。但是,今天的库使得RS256的设置简单 - 库/框架通常会提供检索公钥的功能,并执行与HS256类似配置的验证,但不需要提供秘密。如果您不熟悉,请参阅一些使用您的技术选项的Auth0示例,以了解这一点。
性能 - 是的,这里HS256可能有一个利基。除了缓存公共证书等之外,拥有对称密钥并在应用程序中使用本地应用程序而不需要任何网络请求等,可能证明效率更高。
但是真的应该问的问题是这些好处(性能优化?)是否超过了缺点 - 当然从安全角度来看。
看到这个answer,如果仍然不服气,随意留言(Auth0社区网站)。默认情况下,Auth0已切换到使用RS256的新客户端,其资源API也默认为RS256。
RS256的一个主要优点是胜过大多数选择HS256的参数,只需简单地说就是不需要在客户端应用程序中存储(共同定位)秘密 - 私钥仅由授权服务器知道(Auth0等等),秘密不能泄露。仅此一项就能告诉你为什么RS256绝大多数情况下都是更好的选择。
机密vs公众客户 - 如果您的客户被认为是Confidential Client,您应该只考虑HS256。由于机密客户能够保密,因此您可以选择使用以下两种方式之一签发的身份证令牌 - 对于非机密客户,您绝不应使用HS256,因为根据定义,客户端无法使用保密秘密。
HS256还有其他一些考虑因素,例如需要手动更新所有使用给定客户端配置的应用程序(如果有签名密钥翻转)。
可能重复[RS256 vs HS256:有什么区别?](https://stackoverflow.com/questions/39239051/rs256-vs-hs256-whats-the-difference) –
@Vitalii - 请参阅我的回答 - 我是否为你回答这个问题?有什么不清楚的地方? – arcseldon
感谢您的承认! – arcseldon