LDAP グループに少し問題があります。
私は持っている:
AUTH_LDAP_GROUP_SEARCH = LDAPSearchUnion(
LDAPSearch("OU=U3,OU=UserGroups,OU=U1,OU=CompanyUsers,DC=ad,DC=net", ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"),
LDAPSearch("OU=Apps,OU=Security Groups,OU=Groups,OU=B2,OU=Tenants,DC=ad,DC=net", ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"))
...
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
AUTH_LDAP_REQUIRE_GROUP = (
LDAPGroupQuery("CN=ENGINEER,OU=U3,OU=UserGroups,OU=U1,OU=CompanyUsers,DC=ad,DC=net")
| LDAPGroupQuery("CN=READER,OU=U3,OU=UserGroups,OU=U1,OU=CompanyUsers,DC=ad,DC=net")
| LDAPGroupQuery("CN=ADMIN,OU=Apps,OU=Security Groups,OU=Groups,OU=B2,OU=Tenants,DC=ad,DC=net"))
AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName", "last_name": "sn", "email": "mail"}
LDAP ユーザー経由でログインできますが、(管理者ビューで) グループにデータが入力されません。手動でユーザーをグループに追加すると、このメンバーの新しいログインごとにグループが割り当てられなくなります。
コードを次のように変更すると:
AUTH_LDAP_GROUP_SEARCH = LDAPSearchUnion(
LDAPSearch("OU=U3,OU=UserGroups,OU=U1,OU=CompanyUsers,DC=ad,DC=net", ldap.SCOPE_SUBTREE, "(objectClass=group)"),
LDAPSearch("OU=Apps,OU=Security Groups,OU=Groups,OU=B2,OU=Tenants,DC=ad,DC=net", ldap.SCOPE_SUBTREE, "(objectClass=group)"))
...
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
AUTH_LDAP_REQUIRE_GROUP = (
LDAPGroupQuery("CN=ENGINEER,OU=U3,OU=UserGroups,OU=U1,OU=CompanyUsers,DC=ad,DC=net")
| LDAPGroupQuery("CN=READER,OU=U3,OU=UserGroups,OU=U1,OU=CompanyUsers,DC=ad,DC=net")
| LDAPGroupQuery("CN=ADMIN,OU=Apps,OU=Security Groups,OU=Groups,OU=B2,OU=Tenants,DC=ad,DC=net"))
AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName", "last_name": "sn", "email": "mail"}
私のグループには、メンバーが存在する LDAP のすべてのグループが入力されますが、そうしたくありません。前述の 3 つのグループのみを考慮する必要があります。
も試してみましobjectClass=top
たが、ユーザーが割り当てたすべての LDAP グループも入力されます。
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="CN")
どちらの場合も何も変更
せず、
django にこれら 3 つのグループのみを設定する必要があります。必要な効果は、django でのグループ割り当てが永続的であり、ユーザーのログインごとにクリアされないことです。