在 CentOS7 上使用 Apache/PHP 进行 Kerberos 身份验证

Kerberos auth with Apache/PHP on CentOS7

我想使用 Apache 配置 Kerberos 身份验证 - 但没有成功。 看起来是 keytab 文件的问题。

当我运行:

klist -kte /path/to/website.HTTP.keytab
I get: 
  KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
  12 01/01/1970 02:00:00 HTTP/website.domain@DOMAIN

那我运行:

kinit -k -t /path/to/website.HTTP.keytab HTTP/website.domain@DOMAIN
kinit: Client 'HTTP/website.domain@DOMAIN' not found in Kerberos database while getting initial credentials 

知道哪里出了问题吗?

HTTP/website.domain@DOMAIN 是一个不完整的 SPN,这似乎是 kinit 找不到的最可能原因数据库中的 SPN。例如,完整的 SPN 如下所示:HTTP/website.domain@DOMAIN.COM。要修复,您将需要使用完全限定的语法重新创建密钥表。 Example:

ktpass -out HTTP.keytab -mapUser AD_Account_Name@DOMAIN.COM +rndPass -mapOp set +DumpSalt -crypto AES128-SHA1 -ptype KRB5_NT_PRINCIPAL -princ HTTP/website.domain@DOMAIN.COM