当前位置: 首页 > 知识库问答 >
问题:

KerberosSPN被缓存在Windows服务器上?

姬飞昂
2023-03-14

一直在我的 SSO 项目中集成 Kerberos 身份验证。遇到了一个奇特的场景。

我创建了一个新用户并为其附加了一个 SPN。按照这个问题的步骤进行操作,让一切正常。我的意思是:-

  1. Kinit用户名 - 然后输入密码给了我票已保存的消息。
  2. kinit spn(int 格式为 HTTP/FQDN) - 然后输入密码给了我勾选的消息已保存。

过了一段时间,我决定再试一次,所以我使用了命令

setspn -D spn username

从用户名分离spn。然后我从AD中删除了这个用户(用户名)。

接下来,我创建了一个新用户username1,并按照这个问题为这个新用户注册了与上述步骤相同的spn。

现在,kinit用户名1-输入密码后会显示票已保存的消息,然而kinit spn-输入密码时会显示错误

client not found in Kerberos database.

请注意,如果我使用不同的(新的)spn,一切都正常。

所以问题是,Windows服务器是否有某些缓存,其中某些链接仍然存在,因此我无法再次使用此spn?还是我在从用户处分离spn时犯了一些错误?

谢谢,尼基尔

共有1个答案

巫马淳
2023-03-14

回顾了你在聊天中写的内容,以及完整的问题历史,问题其实是两个问题。(1)在创建密钥表之前,您需要始终删除正在使用的SPN。(2)在ktpass.exe keytab创建命令中,您需要使用HTTP/vinw 12 sec 5225 . eqsec test . local的SPN来映射用户,而不是使用短登录名krbspn。此外,我将只做一个观察-你不需要把所有的帽子SPN。这使得它很难阅读,尽管为了连贯性,我没有改变它。只有Kerberos领域应该全部大写。根据您提供的信息,要解决这种情况,您应该执行以下命令:

  1. setspn -d HTTP/VINW12SEC5225.EQSECTEST。本地 KRBSPN
  2. ktpass /princ HTTP/VINW12SEC5225.EQSECTEST。LOCAL@EQSECTEST。LOCAL /ptype krb5_nt_principal /crypto All /mapuser krbspn@EQSECTEST.LOCAL /out c:\ticket\krbspn.keytab -kvno 0 /pass eQ@12345
  3. klist -e -k -t c:\ticket\krbspn.keytab

作为参考,我在此处展示了当Microsoft Active Directory用作目录服务时如何创建键选项卡的示例:Kerberos键选项卡-解释。我还提供了每个ktpass.exe语法参数的附带解释。

为了帮助解决上述步骤后仍然可能出现的问题,然后使用记事本(不是普通记事本)右键单击并编辑您的键选项卡文件,只需复制键选项卡文件的内容(不要进行任何更改),然后检查结果。里面的密钥将被加密——没关系,看看SPN是如何在键选项卡中制定的。它应该与AD帐户上显示的SPN相匹配。当这些不匹配时,您将得到“客户端未在数据库中找到Kerberos”错误。还要确保应用程序服务器配置指向正确的键选项卡文件,如果键选项卡有任何更改,请重新启动应用程序服务。

 类似资料:
  • 我建立了一个进步的网络应用,https://www.tavest.com.我不明白为什么我的服务人员也被缓存在Chrome中?https://www.tavest.com/service-worker-tavest.js因此,当我更改服务人员时,chrome没有检测到更改,因此服务人员没有更新。 尽管我刷新了很多次页面,它仍然是一样的。然而,在Mozilla中,它工作得很好。这是我安装服务人员的代

  • 问题内容: 我读过,为避免在nodejs中缓存,必须使用: 但是我不知道如何使用它,因为当我在代码中添加该行时会出错。 我的功能(我认为我必须不编程缓存)是: 有人知道如何在我的代码中不放置任何缓存吗?谢谢 问题答案: 您已经编写了标题。我认为您完成此操作后无法添加更多内容,因此只需将标题放在第一个对象中即可。

  • Quarkus有类似于开箱即用?(在文件中找不到任何提及) 要穿上某种服务方式, 这将在一段时间内保留/缓存prev响应,并保留调用堆栈/日志。 类似于那个Spring注释?

  • 我试图将PWA添加到项目中,但未成功。服务工作者不会缓存服务器请求。请求地址未添加到缓存存储中。因此,脱机模式不起作用。 项目配置: vue水疗中心 使用axios库向服务器发出的请求 服务器响应不包含缓存控制标头 pwa是使用标准vue插件实现的:vue/cli插件pwa vue中的PWA配置。配置。js: 还有这个:浏览器中的开发者控制台-

  • 在Chrome中,我的react service worker(使用CRA创建)被永久缓存并服务于旧版本。硬重新加载不会改变任何东西。如果我在开发工具中手动选择bypass for network来修复问题,但显然这不是一个适用于客户端的解决方案。我们的应用程序由Apache提供。基本上,我想知道在这种情况下指定

  • [warning] 注意 安装前需要保证服务器端与G01云中心的通信保持畅通,可以通过命令 telnet www.gov110.cn 80,telnet apiv.gov110.cn 443,telnet update.gov110.cn 80 telnet scan.gov110.cn 80,telnet monitor.gov110.cn 80,telnet alive.gov110.cn 4