如何将FreeIPA数据库中的用户帐户引用到Web应用程序数据库中的用户帐户

时间:2018-10-15 10:51:54

标签: django wordpress single-sign-on freeipa

我的公司决定使用FreeIPA,以便为我们的员工提供Single Sign On功能。我对Kerberos / LDAP和类似的语言根本不熟悉,因为我以前从未使用过这些技术。

我们有70位用户-他们拥有Windows操作系统的计算机,应该将SSO用于多个PythonDjango)Web应用程序,WordPress网站以及Roundcube Web电子邮件和{ {1}}个访问权限。他们根本无法访问Web服务器,因此SSH帐户对于这个故事而言并不重要。

我们的OpenVPN网络应用程序具有包含与其他表相关的用户数据的数据库表,对于我们来说,将每个用户(通过网络应用程序界面)添加到这些表中非常重要,因为否则我们的应用程序将无法正常运行。 考虑到这一点,我想知道是否有某种方法可以将用户从python数据库引用到我们的Web应用程序和wordpress数据库,例如以下示例: enter image description here

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

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

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

编辑MichaelStröder的答案

如我所见,我将必须使用“ --uid”命令将每个现有用户手动添加到FreeIPA,因为FreeIPA会自动将这些属性分配给每个用户。我同意,我不会将用户名用于UID,而只能使用整数。因此,我曾想过要做到这一点-我必须将每个用户的uid号链接到应用程序的DB用户的表ID列。假设,如果John具有UID#7,那么他在WordPress wp_users表中也应该具有ID#7,这对我来说很好。我想我可以在我的自定义python应用程序中轻松管理此操作,但是我不确定如何在WordPress中管理此操作,是否有一些可用于此类事情的插件?我已经找到AuthLDAP,但是我不确定这是否是正确的方法?预先感谢

1 个答案:

答案 0 :(得分:0)

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

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

我强烈建议从个人名称中获取存储在 uid 中的用户名,因为这些用户名经常更改。另外,您永远不要重复使用用户名。

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