首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kerberos (klist)能显示来自同一个校长的两张票吗?

Kerberos (klist)能显示来自同一个校长的两张票吗?
EN

Stack Overflow用户
提问于 2020-08-20 17:02:23
回答 1查看 658关注 0票数 0

我正在尝试编写一个脚本来检查我的Kerberos票证是有效的还是即将到期的。为此,我使用klist --jsonklist生成当前活动票证的列表(取决于安装的Kerberos版本),然后使用正则表达式或JSON解析结果。

最终的结果是,我得到了一张看上去像这样的票清单:

代码语言:javascript
复制
  Issued                Expires               Principal
Aug 19 16:44:51 2020  Aug 22 14:16:55 2020  krbtgt/EXAMPLE.COM@EXAMPLE.COM
Aug 20 09:05:06 2020  Aug 20 19:05:06 2020  ldap/abc-dc101.example.com@EXAMPLE.COM
Aug 20 09:32:18 2020  Aug 20 19:32:18 2020  krbtgt/DEV.EXAMPLE.COM@EXAMPLE.COM

只要做一点点工作,我就可以解析这些结果并验证它们。然而,我很好奇,Kerberos是否有可能从同一个校长那里得到两张票。阅读关于Kerberos使用的MIT页面,似乎只有一张票是“初始”票。

我是否可以依赖于主体的唯一性,或者是否需要检查来自同一主体的多张票的可能性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-21 11:02:27

比那要复杂一些。

TL;博士,您的第二个TGT似乎与跨领域身份验证有关,请参见下面的粗体。

klist显示默认系统缓存中存在的票证:

  • 如果没有可查询的缓存(即不存在的FILE缓存、未启动KEYRING内核服务等),则会发出错误消息。
  • 可能有1张TGT (票证授予票),在您自己的领域中声明您的身份。
  • 可能有N张服务票,声称您有权在服务器Z上联系服务X(这可能属于另一个领域,请参见下面)
  • 跨域身份验证中,一些中间票允许您将领域A.R中的TGT转换为领域R中的TGT,从而允许您在领域B.R中获取服务票证(这将是与Active Directory一起使用的默认分层路径,但可以在[capath]或sthg下定义自定义路径,这取决于在领域之间定义的信任)

但是请注意,并非所有的服务票都存储在缓存中--对于应用程序来说,从缓存中获取TGT、获取服务票证并将其保留在内存中是合法的。这就是Java所做的。

应用程序(或一组应用程序)使用私有缓存cf是合法的。env变量KRB5CCNAME (当您在同一个Linux帐户下运行多个服务并且不想混淆它们的SPN时非常有用),所以除非您显式地点击这个自定义缓存,否则您无法看到它们的klist票证。

对于一个应用程序来说,完全不使用缓存并将其所有的票都保留在内存中是合法的。这就是Java在提供自定义JAAS配置时所做的事情,该配置授权使用主体/keytab进行身份验证。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63509932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档