【问题标题】:How to use the PAC information in the Kerberos ticket如何使用 Kerberos 票证中的 PAC 信息
【发布时间】:2017-02-14 20:30:42
【问题描述】:

我正在使用 Kerberos 开发一个服务器服务并从客户端获取票证,我可以使用预定义的密钥表解密票证,现在我的问题是如何使用票证中的 PAC 信息。以前我使用 LDAP 过程来查询用户的组成员身份以获取授权信息。

现在 PAC 的登录信息包括成员资格,但它是组 ID,但我需要基于“DN”文本的格式(CN=xxx,OU=xxx,DC=xxx...)。

我想知道一般情况下,如何在服务服务器的票证中使用此授权数据。谢谢!

【问题讨论】:

  • 我假设您在这里使用 Active Directory for Kerberos。如果是这样,请在此问题中添加以下标签:active-directory、spnego、ldap
  • 已更新。是的,我正在使用活动目录。现在可以通过 LDAP 查询来解析组名称到 SID 的映射。我正在使用 GSSAPI 来实现 Kerberos。现在我需要提取 PAC 信息。

标签: c active-directory ldap kerberos spnego


【解决方案1】:

如果您的应用程序服务未在 Windows 上运行,您将无法读取 PAC,而不会跳过一些严重的问题。 PAC 是使用 Microsoft 专有代码构建的,这是 Microsoft 在他们的 Kerberos IAW RFC 1510 中引入的东西,但他们的话是“稍作修改”。 Shortly after the release of Windows 2000 [Active Directory], Microsoft received some negative press attention because of the proprietary way they used the PAC field in a Kerberos ticket. [Microsoft] explicitly forbids the creation of software that implements the PAC as described in the specifications.

我花了很长时间试图找到可以读取 PAC 的开源和可靠的东西,我发现了 JAASLounge does this。这是一篇旧文章(从 2010 年开始)。请注意,根据我对微软声明的解释,这似乎违反了他们的条款和条件。

不管怎样,我还在此论坛中为自称让 JAASLounge 正常工作的人添加了两个主题的书签,以及他们必须解决的一些问题。

Decrypt kerberos ticket using Spnego

Malformed PAC logon info on new KerberosToken

如果您不想走这条路,并且想绕过 PAC 来确定 AD 用户的组成员资格,那么您将不得不求助于对 AD 域控制器进行 LDAP 回调。

最后我要说的是,如果您在基于 Windows 的应用程序服务器(如 IIS 或 SharePoint)上运行,PAC 的 Kerberos 解码会自动进行,因此不需要特殊的代码、配置或 keytab 文件.

【讨论】:

  • 天鹭,感谢您的回复。在 MIT Kerberos 文档中,我确实找到了获取 PAC 信息的 API。我会更新我用C语言成功制作的。
  • 使用 gssapi 可以检索 pac 数据并解码登录信息缓冲区以获得授权数据(组成员资格)。
  • @Orasy。谢谢你的评论。我已将此回复添加为书签。
  • @orasy - 有什么方法可以帮我一个很大的忙,请提供指向您用来查找 API 以获取 PAC 信息的 MIT Kerberos 文档的 URL 超链接? :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
相关资源
最近更新 更多