Python

Django LDAP - 如何將描述欄位映射到 Django 組

  • September 22, 2012

我正在嘗試使用Django-Auth為我的 Django 應用程序設置 LDAP 身份驗證

我想做的基本想法是,描述中帶有“IT - Help Desk”的任何 LDAP 使用者都將映射到某個 Django 組,描述中帶有“Admin”的使用者將轉到另一個 Django 組,而其他任何人都不會不被允許進入。

(有一些遺留原因我必須使用描述欄位,所以這不是更改的選項)

更新:後續對話的某些部分移到了這裡

django-auth-ldap 1.0.9(3/27 發布)添加了一對 Django 信號,客戶端可以使用這些信號對使用者和配置文件對象進行一些自定義填充。我建議連接到populate_user信號並使用 LDAP 屬性來更新使用者的組成員資格。例如:

import django_auth_ldap.backend

def update_groups(sender, user=None, ldap_user=None, **kwargs):
   # Remember that every attribute maps to a list of values
   descriptions = ldap_user.attrs.get("description", [])

   if "IT - Help Desk" in descriptions:
       # Add user to group
   else:
       # Remove user from group

django_auth_ldap.backend.populate_user.connect(update_groups)

這甚至可以安全地與AUTH_LDAP_MIRROR_GROUPS結合使用,因為在所有內置使用者填充完成後發送信號。

引用自:https://serverfault.com/questions/431040