【问题标题】:How to retrieve group membership from a kerberos ticket?如何从 kerberos 票证中检索组成员身份?
【发布时间】:2023-12-23 13:38:01
【问题描述】:

我正在尝试从 windows2008r2 上生成的 Kerberos 票证中提取组成员身份信息。

在一个 URL 中,我发现了以下语句: Kerberos 还在研究将组成员信息包含在 Kerberos 授权数据中的机制。尽管将组名包含在 ACL 中是有利的,但 GSS-API 当前没有支持这一点的机制。

似乎 Microsoft 已扩展 Kerberos 以包含基于此 URL 的组成员身份: http://msdn.microsoft.com/en-us/library/ms817918.aspx: Kerberos 身份验证组成员资格扩展扩展了 Kerberos 身份验证网络服务(第 5 版)规范,以支持 Microsoft Windows 操作系统的交互式登录身份验证和组成员身份信息。扩展包括特权访问证书 (PAC) 结构,位于 Kerberos v5 票证的授权数据字段中。

该 URL 引用了票证中的一个字段(授权数据),我无法确定如何使用此 API 进行访问: http://docs.oracle.com/javase/6/docs/api/org/ietf/jgss/GSSContext.html

有谁知道如何访问该字段?或者关于如何从 Windows2008r2 上生成的 Kerberos 票证中提取组信息的指导。

我正在用 Java 编写,但也愿意用 C 编写。尽管使用 windows 作为 kerberos 服务器,但从票证中提取组信息的逻辑仍在 UNIX 上运行。

感谢您能给我的任何帮助!

【问题讨论】:

    标签: java kerberos


    【解决方案1】:

    Java 不支持读取 PAC 字段。 JaasLounge 项目声称有一个工作的 PAC 解码器。如果你想使用 C,Heimdal 有PAC support。我不知道这在多大程度上有效。 祝你好运!

    另一种方法是:如果您有空闲时间,请获取 Microsoft 的文档并自己从 Kerberos 票证中读取字节并从中创建一个开源项目:-D

    【讨论】: