原来,上述错误是由两个问题引起的:
d簧配置中的服务主体是错误的。它是lxdetstpksvc01.mydomain.de@MYREALM.DE,但是 HTTP/lxdetstpksvc01.mydomain.de@MYREALM.DE 是正确的。
密钥表中的Kvno与活动目录中存储的Kvno不同。如https://tomcat.apache.org/tomcat-7.0-doc/windows-auth-howto.html所述, Active Directory在每次执行ktpass时都会提高Kvno。但是我无法在广告中找到它的值(msDS-KeyVersionNumber),只能从请求中获取它。
归纳为以下问题之一导致的“找不到合适类型的密钥来解密…”错误:
- spring安全配置中的主要服务与keytab中的服务(ktpass的param / princ)不同。
- AD没有使用其发送票证的加密类型的密钥(来自ktpass的参数/ crypto,并在krb5.conf / permitted_enctypes + default_tkt_enctypes中设置)。
- 票证中的Kvno与密钥表中的Kvno不同(ktpass中的参数/ kvno)。
- 密钥表的路径错误(请参阅Xavier Portebois的回答)
- 该过程没有读取密钥表的权限
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)