django使用ldap进行用户登录认证

本文介绍了如何在Django项目中配置和使用LDAP作为用户认证的后端,通过设置AUTHENTICATION_BACKENDS、AUTH_LDAP_SERVER_URI、AUTH_LDAP_BIND_DN、AUTH_LDAP_BIND_PASSWORD等关键参数实现与LDAP服务器的连接和用户搜索。同时,还展示了如何映射Django模型字段与LDAP字段,如将'first_name'映射到'cn','last_name'映射到'sn','email'映射到'mail'。
  一般在公司内部都会使用ldap系统进行用户认证。
  安装  pip install django-auth-ldap
  主要在settings.py的配置
 

点击(此处)折叠或打开

  1. #设置后端认证函数,先进行ldap认证 后进行数据库认证
  2. AUTHENTICATION_BACKENDS = [
  3.     'django_auth_ldap.backend.LDAPBackend',          # ldap认证
  4.     'django.contrib.auth.backends.ModelBackend',     # 数据库用户认证
  5. ]
  6. #ldap的连接基础配置
    AUTH_LDAP_SERVER_URI = "ldap://xxx.xxx.xxx.xxx:389" # ldap or ad 服务器地址
    AUTH_LDAP_BIND_DN = "CN=administrator,CN=Users,DC=test,DC=com" # 管理员的dn路径
    AUTH_LDAP_BIND_PASSWORD = 'testpassword' # 管理员密码
    #搜索的域
    AUTH_LDAP_USER_SEARCH = LDAPSearch(
        'ou=users,dc=example,dc=com',
         ldap.SCOPE_SUBTREE,
        '(uid=%(user)s)',
    )
    #如果有多个域
    AUTH_LDAP_USER_SEARCH = LDAPSearchUnion(
        LDAPSearch(
        'ou=users,dc=example,dc=com',
         ldap.SCOPE_SUBTREE,
        '(uid=%(user)s)'),
      LDAPSearch(
        'ou=admin,dc=example,dc=com',
         ldap.SCOPE_SUBTREE,
        '(uid=%(user)s)',

    )
    #django数据跟ldap字段对应关系,key为django字段,value为ldap字段
    AUTH_LDAP_USER_ATTR_MAP = { 'first_name': 'cn', 'last_name': 'sn', 'email': 'mail',}
        #是否同步ldap的修改,当ldap属性修改后当通过ldap认证会自动同步到django的user表中
        AUTH_LDAP_ALWAYS_UPDATE_USER = True    
        
        AUTH_LDAP_CACHE_TIMEOUT = 100 #ldap缓存时间
                
        AUTH_LDAP_DENY_GROUP = 'cn=kerrigan,ou=Group,dc=ops-coffee,dc=cn' #拒绝这个组下的成员登录
        # 设置额外属性,以下设置为 admin组内的成员登录自动在django设置超级管理员权限,在user表设置is_superuser为True
        AUTH_LDAP_USER_FLAGS_BY_GROUP  = {
                      'is_superuser': 'cn=admin,ou=Group,dc=ops-coffee,dc=cn',
            }  
         
         
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值