AUTH_LDAP_REQUIRE_GROUP在Django中如何工作?

时间:2018-12-31 08:50:01

标签: python django ldap

我正在使用以下代码块,是从Web复制的:

AUTH_LDAP_REQUIRE_GROUP = "cn=GALAXY_login,ou=AppRoles,ou=GALAXY_TEAM,ou=Applications,o=IAM"

AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    "is_active":"cn=GALAXY_login,ou=AppRoles,ou=GALAXY_TEAM,ou=Applications,o=IAM",

"is_staff": "cn=GALAXY_login,ou=AppRoles,ou=GALAXY_TEAM,ou=Applications,o=IAM",

"is_superuser":"cn=GALAXY_superuser,ou=AppRoles,ou=GALAXY_TEAM,ou=Applications,o=IAM"
}

如果我只允许GALAXY_login登录到应用程序,怎么办

"is_superuser":"cn=GALAXY_superuser,ou=AppRoles,ou=GALAXY_TEAM,ou=Applications,o=IAM"

是否返回true

我的理解是,我只允许GALAXY_login.组中的用户,那么"is_superuser"对任何用户都是正确的吗?

1 个答案:

答案 0 :(得分:0)

您还需要授权 GALAXY_superuser 组角色的成员。您可以使用LDAPGroupQuery允许更多群组登录。

请参见Limiting Access

  仅

AUTH_LDAP_REQUIRE_GROUPAUTH_LDAP_DENY_GROUP可能不是   足以满足您的需求。在这种情况下,您可以使用   LDAPGroupQuery对象可对用户的对象执行更复杂的匹配   组。

例如:

from django_auth_ldap.config import LDAPGroupQuery

AUTH_LDAP_REQUIRE_GROUP = (
    LDAPGroupQuery("cn=GALAXY_login,ou=AppRoles,ou=GALAXY_TEAM,ou=Applications,o=IAM") | 
    LDAPGroupQuery("cn=GALAXY_superuser,ou=AppRoles,ou=GALAXY_TEAM,ou=Applications,o=IAM")
)