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

  • 相关阅读:
    翻译「C++ Rvalue References Explained」C++右值引用详解 Part5:右值引用就是右值吗?
    翻译「C++ Rvalue References Explained」C++右值引用详解 Part4:强制Move语义
    翻译「C++ Rvalue References Explained」C++右值引用详解 Part3:右值引用
    翻译「C++ Rvalue References Explained」C++右值引用详解 Part2:Move语义
    python第一部分基础题1-80题
    django rest_framework 框架的使用03
    django rest_framework 框架的使用02
    django rest_framework 框架的使用
    Django ORM-02
    Django ORM-01
  • 原文地址:https://www.cnblogs.com/chenminklutz/p/9642277.html
Copyright © 2020-2023  润新知