当前位置: 首页 > 工具软件 > archer > 使用案例 >

archer配置LDAP

郑星雨
2023-12-01

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账号登录,看日志报什么错,根据提示调试好即可。

 

转载于:https://www.cnblogs.com/chenminklutz/p/9642277.html

 类似资料: