Sau*_*rup 6 linux active-directory kerberos
我正在尝试对 Apache 服务器进行 Kerberize,并允许创建的服务器主体登录到 Active Directory。我遵循了在线提供的众多教程之一,它似乎工作正常。我在项目的 Linux 方面,而企业 IT 在 Windows 方面。
IT 为我提供了一个服务帐户和一个服务主体。在此示例中,我将其称为 HTTP/mysite.mycorp.com@MYCORP.COM。他们为我提供了该主体的密钥表文件,其中涉及在 AD 服务器上运行名为 ktpass.exe 的工具。
我已经验证 AD/KDC 的 KVNO 和密钥表文件匹配。一切都很好。
主机名有正确的 DNS A 记录,IP 有正确的 PTR 记录。两台服务器时间同步。
我可以使用已发布的密钥表文件从 AD/KDC 请求上述服务主体的票证,如下所示:
kinit -k -t http.keytab HTTP/mysite.mycorp.com@MYCORP.COM
Run Code Online (Sandbox Code Playgroud)
这有效。我获得了一张票,我可以使用这张票来处理诸如查询 AD/LDAP 目录之类的事情。密钥表也非常适合运行 Single Signon Apache 站点,这也是本练习的部分目标。
半个小时过去了。
尝试使用上述 kinit 命令登录现在失败并显示以下消息:
Client not found in Kerberos database
Run Code Online (Sandbox Code Playgroud)
我无法作为服务主体进行身份验证,就像在 AD 服务器上删除了主体一样。
现在它变得很奇怪,至少对我来说:
根据请求,AD 管理员再次运行 ktpass.exe 工具,为我的服务构建一个新的密钥表文件。KVNO(密钥版本号)在服务器上增加,导致我们的 Apache 测试服务器停止验证 Kerberos 单点登录。这是我目前的配置所预期的。令我们所有人惊讶的是,现在 kinit 命令再次起作用了。我们又给自己买了半小时,然后它又停止工作了。
我们的 IT 部门在这里不知所措,他们推测这是 AD 服务器本身的问题。我认为这是配置,但据他们说,他们的设置中的任何地方都没有半小时限制。
我遵循了http://www.grolmsnet.de/kerbtut/(参见第 7 节),但在我找到的所有文档中,该方法似乎都相同。我没有找到任何关于服务主体时间限制的参考。
编辑:这似乎是一个复制问题。虽然复制过程没有报错,但是服务账号的SPN值从“HTTP/mysite.mycorp.com@MYCORP.COM”更改(恢复?)到“name-of-service-account@mycorp.com” “30 分钟后。
谢谢你们的意见,伙计们。我们邀请了 Microsoft,他们帮助我们调试 AD 端的身份验证过程。一切都按预期进行,但三十分钟后失败了。
当我们进行远程调试会话时,其中一个参与者注意到服务帐户的 UPN/SPN 突然从HTTP/mysite.mycorp.com@MYCORP.COM重新设置为service-account@mycorp.com。经过大量挖掘(包括调试 AD 复制),我们找到了罪魁祸首:
有人制作了一个定期运行的脚本(或者可能按事件运行,因为运行 ktpass.exe 后恰好是三十分钟),该脚本更新了 UPN/PSN 以“确保云连接”。我没有任何关于这样做的原因的补充信息。
脚本已更改为允许以@mycorp.com结尾的现有 UPN/SPN 值,从而有效解决了问题。
调试此类问题的提示:
再次感谢您的意见。
| 归档时间: |
|
| 查看次数: |
896 次 |
| 最近记录: |