django集成ldap

ldap搭建过程

一:安装django-ldap依赖包

pip3 install django-python3-ldap

二:在settings中进行添加


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_python3_ldap'  # ldap
]

# LDAP localost根据实际填写
LDAP_AUTH_URL = "ldap://localost:389"

# 不使用TLS(加密传输,CA证书)
LDAP_AUTH_USE_TLS = False

# 搜索根路径
LDAP_AUTH_SEARCH_BASE = 'dc=ihopeit,dc=com'

# 哪些类型的用户可以登录
LDAP_AUTH_OBJECT_CLASS = 'inetOrgPerson'

# ldap中字段和django中的字段映射关系
LDAP_AUTH_USER_FIELDS = {
    "username": "cn",  # common name
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail"
}

# 用户登录时,如果django中已有相应用户,则使用username字段作为LDAP里面的登录用户名
LDAP_AUTH_USER_LOOKUP_FIELDS = ("username", )

LDAP_AUTH_CLEAN_USER_DATA = "django_python3_ldap.utils.clean_user_data"
LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN = None
LDAP_AUTH_SYNC_USER_RELATIONS = "django_python3_ldap.utils.sync_user_relations"
LDAP_AUTH_FORMAT_SEARCH_FILTERS = "django_python3_ldap.utils.format_search_filters"
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_openldap"

# ldap认证账户信息
LDAP_AUTH_CONNECTION_USERNAME = "admin"
LDAP_AUTH_CONNECTION_PASSWORD = "password"

# LDAP认证服务和DJANGO认证服务(同时支持两种认证后端)
AUTHENTICATION_BACKENDS = (
    "django_python3_ldap.auth.LDAPBackend",  # 配置为先使用LDAP认证,如通过认证则不再使用后面的认证方式
    'django.contrib.auth.backends.ModelBackend',
)

LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
        },
    },
    "loggers": {
        "django_python3_ldap": {
            "handlers": ["console"],
            "level": "INFO",
        },
    },
}

三:用户同步

python3 manage.py migrate
python3 manage.py ldap_sync_users

四:遇到的坑

LDAP bind failed: LDAPInvalidCredentialsResult - 49 - invalidCredentials - N

五:解决办法

第一步:删除admin账户
第二步:重新创建admin
  • 选择: Generic: Posix Group
  • group: admin
  • 添加属性:password,密码自定义
再次执行上述迁移用户即可
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值