我正在使用django-auth-ldap针对Active Directory(LDAP)数据库对Django用户进行身份验证。

sAMAccountName(通常是AD帐户的唯一标识符)的约定是firstname.surname。对于逻辑用户,此值可能会更改。例如,他们的姓氏可能在结婚或离婚时发生变化。

为了便于使用,我们还要求用户使用电子邮件前缀而不是sAMAccountName登录。在大多数情况下,该值与sAMAccountName相同。但是,在某些情况下,用户有两个电子邮件地址(1.法定名称,2。英文/西文友好名称)。在其他情况下,电子邮件和sAMAccountName由于历史原因而有所不同。

在所有情况下(AD标识符更改,一个用户有两个电子邮件标识符,电子邮件标识符!= sAMAccountName),多个有效LDAP身份验证应映射到同一逻辑Django用户-它们不应触发创建多个独立的User对象。

我们如何为这种情况配置身份验证?


别名。如果可以将Django用户映射到“主要”用户,而不是在同一用户上进行多次身份验证,则可以接受。
备用库。如果另一个维护良好的Django / LDAP身份验证库可以完成这项工作(例如django-auth-ldap-ng

最佳答案

django-auth-ldap具有documented mechanism,可让您自定义用户创建过程。通过子类化后端并覆盖此方法,您可以按照自己喜欢的任何方式将LDAP用户映射到Django用户。

关于python - Django可以将多个LDAP身份验证映射到单个User对象吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38188431/

10-11 02:42
查看更多