archer是一个不错的开源的SQL自动化操作平台,基于inception,支持工单、审核、定时任务、邮件、OSC等功能,还可配置MySQL查询、慢查询管理、会话管理等。
社区由作者(https://github.com/jly8866/archer/)开发,@小圈圈一直负责docker镜像的更新,感谢两位和社区。
下边说一下怎么配置LDAP。
配置LDAP主要在settings.py里,样例代码:
# LDAP ENABLE_LDAP = True if ENABLE_LDAP: import ldap # from django_auth_ldap.config import LDAPSearch, GroupOfNamesType from django_auth_ldap.config import LDAPSearch, GroupOfUniqueNamesType AUTHENTICATION_BACKENDS = ( 'django_auth_ldap.backend.LDAPBackend', # 配置为先使用LDAP认证,如通过认证则不再使用后面的认证方式 'django.contrib.auth.backends.ModelBackend', # sso系统中手动创建的用户也可使用,优先级靠后。注意这2行的顺序 ) # if use self signed certificate, Remove AUTH_LDAP_GLOBAL_OPTIONS annotations # AUTH_LDAP_GLOBAL_OPTIONS={ # ldap.OPT_X_TLS_REQUIRE_CERT: ldap.OPT_X_TLS_NEVER # } AUTH_LDAP_BIND_DN = "cn=Manager,dc=example,dc=net" AUTH_LDAP_BIND_PASSWORD = "password" AUTH_LDAP_SERVER_URI = "ldap://ldap.example.net:389" AUTH_LDAP_BASEDN = "ou=技术中心,ou=People,dc=example,dc=net" AUTH_LDAP_USER_DN_TEMPLATE = "cn=%(user)s,ou=技术中心,ou=People,dc=example,dc=net" AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=技术中心,ou=People,dc=example,dc=net", ldap.SCOPE_SUBTREE, "(objectClass=groupOfUniqueNames)" ) AUTH_LDAP_GROUP_TYPE = GroupOfUniqueNamesType() AUTH_LDAP_ALWAYS_UPDATE_USER = True # 每次登录从ldap同步用户信息 AUTH_LDAP_USER_ATTR_MAP = { # key为archer.sql_users字段名,value为ldap中字段名,用于同步用户信息 "username": "cn", "display": "displayName", "email": "mail" } # AUTH_LDAP_MIRROR_GROUPS = True # 直接把ldap的组复制到django一份,和AUTH_LDAP_FIND_GROUP_PERMS互斥.用户每次登录会根据ldap来更新数据库的组关系 AUTH_LDAP_FIND_GROUP_PERMS = True # django从ldap的组权限中获取权限,这种方式,django自身不创建组,每次请求都调用ldap AUTH_LDAP_CACHE_GROUPS = True # 如打开FIND_GROUP_PERMS后,此配置生效,对组关系进行缓存,不用每次请求都调用ldap AUTH_LDAP_GROUP_CACHE_TIMEOUT = 600 # 缓存时间
我要来的LDAP配置信息如下
http://ldap.example.net/ldapadmin/
cn=Manager,dc=example,dc=net
password
ou=技术中心,ou=People,dc=example,dc=net
ou=Group,dc=example,dc
配置步骤
首先把ENABLE_LDAP改为True,意为开启LDAP登录;
AUTH_LDAP_BIND_DN设置为cn=Manager,dc=example,dc=net,相当于archer连接LDAP的账号,这里给了管理员账号
AUTH_LDAP_BIND_PASSWORD密码
AUTH_LDAP_SERVER_URI是服务器地址,有域名写域名,没域名写IP,记得后边冒号跟端口
AUTH_LDAP_BASEDN是默认的路径,全员都在里边的LDAP路径
AUTH_LDAP_USER_DN_TEMPLATE是用户账号模板,设置为cn=%(user)s,后接AUTH_LDAP_BASEDN即可
AUTH_LDAP_GROUP_SEARCH组搜索,设置为AUTH_LDAP_BASEDN即可
AUTH_LDAP_USER_ATTR_MAP里的三个值是archer映射ldap数据的字段,我这个版本的ldap是上边的,具体的可以登录ldap admin查看自己的属性字段
最下边的四个选项默认即可
配置好以后重启gunicorn,然后尝试使用LDAP账号登录,看日志报什么错,根据提示调试好即可。