我在 Keycloak 和管理选项卡 Keys -> Active 中创建了一个新领域,我可以看到三个条目:RSA、HMAC、AES。
每当生成 JWT token 时,使用的签名算法是 RSA。如何改用 HMAC?
最佳答案
我有同样的问题,并找到以下答案:
最新的文档说访问 token 只支持 rsa。
( http://www.keycloak.org/docs/3.3/server_admin/topics/realms/keys.html )
有计划用 hmac 签署刷新 token 。查看此用户邮件列表条目以获取更多详细信息:
“无论如何,由 HMAC 签署 accessTokens 和 idTokens 并不是很好,因为
应用程序将需要有权访问领域签名 key 。照原样
对称的东西。这可能是安全漏洞,因为应用程序可以
自己生成和签署 token 。因此,我们宁愿依靠
非对称密码学 - Keycloak 使用私钥对 token 进行签名并
应用程序只有公钥来验证签名。”
http://lists.jboss.org/pipermail/keycloak-user/2017-May/010809.html
这是它的 JIRA:
https://issues.jboss.org/browse/KEYCLOAK-4623和内部
https://issues.jboss.org/browse/KEYCLOAK-4622
关于single-sign-on - 如何将 Keycloak 配置为默认使用 HMAC 算法而不是 RSA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48351383/