我正在configuration一个带有Kerberos的AD的apache / SSO身份validation。 我的http服务器是Debian Wheezy,AD是Windows Server 2012。
我使用kpass命令为kpass的每种encryptiontypes生成了WS2012上的keytabs文件。
当我尝试用kinit打开与用户[email protected]的会话时,它可以工作。
当我尝试用HTTP/[email protected]打开会话时,我收到以下消息:
kvno HTTP/[email protected] kvno: KDC has no support for encryption type while getting credentials for HTTP/[email protected]
另外,当我检查用于[email protected]encryption时,我有:
root@SERVER:~# klist -e Ticket cache: FILE:/tmp/krb5cc_0 Default principal: [email protected] Valid starting Expires Service principal 03/04/2015 12:48:21 03/04/2015 22:48:17 krbtgt/[email protected] renew until 04/04/2015 12:48:21, Etype (skey, tkt): arcfour-hmac, arcfour-hmac
我试图用我的/etc/krb5.conf来定制:
default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5 default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
并且通过使用用arcfour-hmacencryption的密钥表文件而没有成功。
我不明白如何更改用于沟通的encryptiontypes,为什么它总是希望arcfour-hmac,为什么当我给它的arcfour-hmacencryption,没有什么改变…
如何确定/etc/krb5.conf更改是否有效,以及如何使Kerberos票据生成工作?
域控制器计算机对象的msDS-SupportedEncryptionTypes属性中列出了Active Directory域控制器支持的encryptiontypes。 在默认安装中,它们通常是这样的:
RC4_HMAC_MD5 AES128_CTS_HMAC_SHA1_96 AES256_CTS_HMAC_SHA1_96
这是一个十进制的28位掩码,所以它就像00011100一样。
所以当你问为什么域控制器“总是只需要ARC4-HMAC”时,这是因为你的客户端没有任何与域控制器相同的另外两种encryptiontypes,所以在协商过程中被淘汰。
(注意:RC4_HMAC_MD5实际上是所有可能的encryptiontypes中最差也是最弱的,但有时也需要支持传统scheme和与非Microsoft产品的互操作性。)
我查了一些文档,发现了一个别人的configuration文件的例子,并认为这可能是有用的:
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos
; for Windows 2008 with AES default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
请注意,除了支持更好的encryptiontypes之外,他们还在其configuration中指定rc4-hmac ,这与您所拥有的不同, arcfour-hmac-md5 。 (另外不要忘记permitted_enctypes行,我没有看到您的文章。)
我不是100%肯定会解决你的问题,因为我现在无法testing它,但希望它会有所帮助。