一直在我的 SSO 项目中集成 Kerberos 身份验证。遇到了一个奇特的场景。
我创建了一个新用户并为其附加了一个 SPN。按照这个问题的步骤,让一切正常。我的意思是:-
- kinit 用户名-然后输入密码给了我票已保存的消息。
- kinit spn(int the format HTTP/FQDN) - 然后输入密码给了我打勾的消息已保存。
过了一段时间,我决定再试一次,所以我使用了命令
setspn -D spn username
从用户名中分离 spn。然后我从 AD 中删除了这个用户(用户名)。
接下来,我创建了一个新用户,说 username1 并按照这个问题为这个新用户注册了与上述步骤相同的 spn。
现在 kinit username1 - 输入密码给出了保存票证的消息,但是 kinit spn - 输入密码给了我错误
client not found in Kerberos database.
请注意,如果我使用不同的(新)spn,一切正常。
所以问题是,Windows 服务器是否有某些缓存,其中一些链接仍然存在,因为我无法再次使用这个 spn?还是我在从用户分离 spn 时犯了一些错误?
谢谢,尼基尔