zoukankan      html  css  js  c++  java
  • archer配置LDAP

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

  • 相关阅读:
    java OA系统 自定义表单 流程审批 电子印章 手写文字识别 电子签名 即时通讯
    flowable 获取当前任务流程图片的输入流
    最新 接口api插件 Swagger3 更新配置详解
    springboot 集成 activiti 流程引擎
    java 在线考试系统源码 springboot 在线教育 视频直播功能 支持手机端
    阿里 Nacos 注册中心 配置启动说明
    springboot 集成外部tomcat war包部署方式
    java 监听 redis 过期事件
    springcloudalibaba 组件版本关系
    java WebSocket 即时通讯配置使用说明
  • 原文地址:https://www.cnblogs.com/chenminklutz/p/9642277.html
Copyright © 2011-2022 走看看