是否可以在 AD 中为用户组使用 keytab

Posted

技术标签:

【中文标题】是否可以在 AD 中为用户组使用 keytab【英文标题】:Is it possible to use a keytab for group of user in AD 【发布时间】:2016-05-06 11:19:10 【问题描述】:

我在 Hadoop 环境中使用 kerberos,并且我使用 keytab 文件为不同的用户提供身份验证。现在我有一些用户,我必须给他们同样的权限。 所以我创建了一个用户组并为该活动目录组生成了一个通用的 keytab 文件,但未能验证 keytab 文件。它给了我一个错误,如下所述:kinit: Client 'xyz@BIGDATA.LOCAL' not found in Kerberos database while getting initial credentials 现在的问题是,是否有可能在活动目录中为组使用 keytab 文件,或者我应该使用任何其他方式来实现相同的目标?

【问题讨论】:

嗨;如果我们已经回答了您的问题,请将其标记为这样,以便向社区中的其他人验证;否则请告诉我们。 【参考方案1】:

您只需要在应用服务器上放置一个 keytab 即可成功进行 Kerberos SSO 身份验证,而不需要多个。当用户访问启用了 Kerberos 的服务时,他们会从 KDC 获得该服务的 Kerberos 票证。应用服务器上的 keytab 会解密该票证的内容,因为在 keytab 内部是用户想要访问的应用服务器上运行的服务的表示、应用服务器的 FQDN 以及将接受身份验证的 Kerberos 领域名称KDC 中服务主体的尝试和加密哈希。由于每个中的密码相同,因此身份验证成功。这是一个非常隐含的解释。但是,keytab 将无法确定用户组成员身份。这是授权的一部分,因此如果要解析组成员身份,则需要对目录服务器进行 LDAP 授权回调。

据我所知,这条规则只有一个例外。在同质的仅限 Microsoft 的 Active Directory 环境中,其中 Kerberos 是主要的身份验证方法(默认情况下),不使用密钥表。 Microsoft 应用程序服务器可以在没有 keytab 的情况下本地解密 Kerberos 票证以确定用户是谁解析同一张票证以获取用户的组信息,而无需 LDAP 回调到目录服务器.解析 Kerberos 服务票证以获取组信息称为读取 PAC。然而,在 AD 环境中,非 Microsoft 平台无法“读取 PAC”以获得组成员身份,因为据我所知,Microsoft 从未公开过他们是如何做到这一点的。见http://searchwindowsserver.techtarget.com/feature/Advanced-Kerberos-topics-From-authentication-to-authorization。

【讨论】:

了解这篇文章有点老了,就我而言,我有一堆数据存储库,我需要让整个组成员使用一个 keytab 来访问他们有权访问的存储库,我想知道是否是否可以将所有成员的主体添加到基于唯一帐户创建的单个密钥表中,并且存储库设置为由该帐户拥有?谢谢

以上是关于是否可以在 AD 中为用户组使用 keytab的主要内容,如果未能解决你的问题,请参考以下文章

如何将密码加密到密钥表文件中?

是否可以在 Microsoft Graph 中为每个用户存储一个音频文件?

是否可以在 keycloak 中为不同组中的用户添加不同的角色?

如何使用PowerShell解锁Azure AD用户帐户?

是否可以为 Azure AD 中的用户或组分配多个角色?

找出AD中的一个群组是否在分发群组中?