我想用 ldap 来代替 django 自带的认证系统,来登陆 django 的自带后台,用的这个库 https://github.com/django-auth-ldap/django-auth-ldap 这是我的配置文件
# LDAP
# AUTH_LDAP_START_TLS
AUTH_LDAP_SERVER_URI = "ldap://ldap.------.com" #配置 ldap 的服务地址
# 指定使用 ldap 作为认证系统
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
# ldap 的用户搜索的路径,可以使用 LDAP 的客户端查看用户的搜索路径
# 我这边使用的 ldapBorwser 查看的 ldap 账号结构和信息
AUTH_LDAP_USER_SEARCH = LDAPSearch("OU=运维开发,OU=后端开发,OU=技术部,OU=------,DC-------,DC=local",
ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
# print(AUTH_LDAP_USER_SEARCH)
#
# # ldap 用户组的搜索路径
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("OU=运维开发,OU=后端开发,OU=技术部,OU=-----,DC=-----,DC=local",
ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)")
AUTH_LDAP_GROUP_TYPE = PosixGroupType(name_attr="cn")
# AUTH_LDAP_GROUP_TYPE = "OU=运维开发,OU=后端开发,OU=技术部,OU=------,DC=-------,DC=local"
print(AUTH_LDAP_GROUP_TYPE)
# AUTH_LDAP_REQUIRE_GROUP = 'OU=运维开发,OU=后端开发,OU=技术部,OU=------,DC=-------,DC=local'
# ldap 中对于的用户属性同步到 django 用户账号的属性对应列
AUTH_LDAP_USER_ATTR_MAP = {
"username": "uid",
"email": "mail",
'first_name': "sn",
"last_name": "givenName"
}
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
#定义用户可以登录 admin 后台的组是哪个,前面 ldap 中已经创建了这个组,并加入了指定用户
# 默认创建的 django 用户是不能登录 admin 后台的
"is_staff": "OU=运维开发,OU=后端开发,OU=技术部,OU=------,DC=------,DC=local",
"is_active": "OU=运维开发,OU=后端开发,OU=技术部,OU=-------,DC=------,DC=local",
"is_superuser": "OU=运维开发,OU=后端开发,OU=技术部,OU=--------,DC=------,DC=local"
}
# 同步 ldap 的用户信息到 django 中
# 如果第一次登录 django 中没有此用户,ldap 中有,可以自动在 django 中将用户复制过去,并指定权限
AUTH_LDAP_ALWAYS_UPDATE_USER = True
# 设定 django 第一采用 ldap 权限认证,如果 ldap 中没有用户,再使用 django 中的用户认证
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
# 'django.contrib.auth.backends.ModelBackend',
)
这是 log 记录
我登陆的这个用户在 OU=运维开发,OU=后端开发,OU=技术部,OU=--------,DC=------,DC=local
这个目录中
在作者的 issue 里也只搜到了一个没用的 issue https://github.com/django-auth-ldap/django-auth-ldap/issues/71
我觉得是验证用户组那里出现了问题但是调试了好长时间还是这样
ps: 一些重要信息已经删除或者替换
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.