• [TimLinux] python-ldap 介绍


    1. 接口

    ldap: LDAP库接口

    ldap.asyncsearch: 大量搜索结果数据采用流处理

    ldap.controls: LDAPv3上层访问扩展控制

    ldap.dn: LDAP distinguished 名称处理

    ldap.extop: LDAPv3上层访问扩展操作

    ldap.filter: LDAP过滤器处理

    ldap.modlist: 生成修改列表

    ldap.resiter: 大量搜索结果数据采用流处理生成器

    ldap.schema: LDAPv3 schema处理

    ldap.syncrepl: syncrepl消费者实现

    ldap.sasl: SASL认证方法

    ldif: LDIF 解析器和生成器

    ldapurl: LDAP URL 处理

    sldaptest: OpenLDAP的sldap服务器的批量测试实例

    2. django-auth-ldap配置

    settings.py文件中的配置:

    import ldap
    from django_auth_ldap.config import LDAPSearch
    
    AUTHENTICATION_BACKENDS = [
    
        'django_auth_ldap.backend.LDAPBackend',
    
        'django.contrib.auth.backends.ModelBackend'
    
    ]
    
    AUTH_LDAP_SERVER_URI = 'ldap://<ip>:389'
    AUTH_LDAP_BIND_DN = "cn=<ldapuser>,OU=...,OU=...,DC=company,DC=com"
    AUTH_LDAP_BIND_PASSWORD = "<ldappassword>"
    AUTH_LDAP_USER_SEARCH = LDAPSearch(
        'OU=xxx,OU=XXX,DC=company,DC=com',
        ldap.SCOPE_SUBTREE,
        '(&(objectclass=Person)(sAMAccountName=%(user)s))'
    )
    
    AUTH_LDAP_USER_ATTR_MAP = {
        'email': 'mailNickname',
        'first_name': 'department',
        'last_name': 'cn'
    }
    View Code

     3. 视图

    视图中的代码非常的简单,主要就是调用 authenticate 和 login 方法,代码示例如下:

    from django.contrib.auth import authenticate, login, logout
    
    def login_view(request):
        username = request.POST.get('username')
        password = request.POST.get('password')
    
        user = authenticate(username=username, password=password)
        if user is not None:
            login(request, user)
        else:
            print("login fail")
    
    def logout_view(request):
        logout(request)
    View Code

     4. 模板

    在模板HTML中,则可以通过使用 request.user.is_authenticated 来判断用户是否登录,而通过 request.user.* 来获取存放在里面的用户相关信息。

  • 相关阅读:
    JOI2017FinalC JOIOI 王国
    JOISC2017C 手持ち花火
    P4336 [SHOI2016]黑暗前的幻想乡
    SP104 HIGH
    P3160 [CQOI2012]局部极小值
    P4965 薇尔莉特的打字机
    【BZOJ4361】isn
    P3506 [POI2010]MOT-Monotonicity 2
    P3214 [HNOI2011]卡农
    P3704 [SDOI2017]数字表格
  • 原文地址:https://www.cnblogs.com/timlinux/p/9154457.html
Copyright © 2020-2023  润新知