我正在服务器上使用keycloak单点登录,并希望启用kerberos身份验证https://www.keycloak.org/docs/latest/server_admin/index.html#_kerberos
在文档中,他们说我必须在密钥斗篷服务器上安装MIT kerberos客户端。
据我所知,JDK具有用于kerberos协议的类。例如,这是我的例外之一
Caused by: KrbException: Invalid argument (400) - Cannot find key of appropriate type to decrypt AP REP - AES256 CTS mode with HMAC SHA1-96
at sun.security.krb5.KrbApReq.authenticate(KrbApReq.java:278)
at sun.security.krb5.KrbApReq.<init>(KrbApReq.java:149)
at sun.security.jgss.krb5.InitSecContextToken.<init>(InitSecContextToken.java:108)
at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:829)
... 93 more
所以我的问题是什么实际上是MIT Kerberos客户端?它是JDK的一部分吗?还是JDK依赖的库?顺便说一句,我正在Windows机器上运行keycloak服务器,而不必安装任何其他客户端。
在Linux上,MIT Kerberos客户端是一个OS程序包,其中包括C库和命令行实用程序,例如kinit
,klist
,ktutil
sudo yum install krb5-workstation
sudo apt-get install krb5-user
上klist.exe
实用程序结束,它们列出了具有不同选项的不同票证缓存-一种与Windows捆绑在一起,一个与Java捆绑在一起,一个与MIT Kerberos for Windows捆绑在一起
应用;注意您的路径。