0

我的公司已决定使用FreeIPA,以便Single Sign On为我们的员工提供可用的功能。我对Kerberos/LDAP和类似的东西一点都不熟悉,因为我以前从未使用过这些技术。

我们有 70 个用户 - 他们有 Windows 操作系统机器,SSO 应该用于几个Python( Django) Web 应用程序、WordPress 网站,并且可能用于RoundcubeWeb 电子邮件和OpenVPN访问。他们根本无法访问 Web 服务器,因此 SSH 帐户对于这个故事并不重要。

我们的python网络应用程序有一个包含用户数据的数据库表,该数据与其他一些表相关,对我们来说,将每个用户添加到这些表中非常重要(通过我们的网络应用程序界面),否则我们的应用程序将无法正常工作。考虑到这一点,我想知道是否有办法以某种方式将用户从FreeIPA's数据库引用到我们的网络应用程序和 wordpress 的数据库,示例如下: 在此处输入图像描述

并非每个用户都可以访问每个 Web 应用程序,也不是每个用户在这些应用程序中都拥有相同的权限。

我们已经在每个 Web 应用程序中分别定义了用户权限,并且一切正常,因此主要目标只是让SSO我们的用户可用。我不想打扰FreeIPA系统中的用户组和权限,我能避免吗?当用户获得Kerberos票证时,我希望这些网络应用程序能够识别他/她的帐户,该帐户引用FreeIPA数据库中相应的用户帐户,因此在这些应用程序中具有某些特权。

在这种情况下,很明显我必须将每个新用户添加两次 - 在FreeIPA数据库和 Web 应用程序的数据库中,但这不是问题,我只想以某种方式连接/引用这些用户帐户。

编辑 Michael Ströder 的回答

如我所见,我必须使用“--uid”命令手动将每个现有用户添加到 FreeIPA,因为 FreeIPA 会自动将这些属性提供给每个用户。我同意,我不会将用户名用于 UID,而只会使用整数。所以,我想像这样 - 我必须将每个用户的 uid 号链接到应用程序的 DB 用户的表 ID 列。比方说,如果 John 有 UID #7,他在 WordPress wp_users 表中也应该有 ID #7,这对我来说看起来不错。我想我可以在我的自定义 python 应用程序中轻松管理它,但我不确定如何在 WordPress 中管理它,是否有一些插件可用于此类事情?我找到了 AuthLDAP,但我不确定这是否是正确的方法?提前致谢

4

1 回答 1

0

通常的方法是拥有唯一且持久的用户名(字符串),通常存储在 FreeIPA(或其他 LDAP 服务器)的属性uid中,并将其用作应用程序数据库表中的键。

请注意,uid不包含实际存储在属性 uidNumber 中的 POSIX-UID(整数

我强烈建议不要从个人姓名派生存储在uid中的用户名,因为这些经常更改。此外,您永远不应该重复使用用户名。

FreeIPA 还具有属性nsUniqueId,其中包含在创建条目期间生成的 UUID。它不会在条目的生命周期内被修改。如果您想使用它,您必须注意不要一直被外部身份管理系统删除/重新创建条目。(其他 LDAP 服务器使用标准属性entryUUID)。

于 2018-10-15T12:11:47.253 回答