Django项目接入LDAP用户认证

#简介 以下内容主要介绍关于Django系统的后台admin管理页面中如何采用LDAP用户认证,并实现登陆的办法

#用户认证接入前提

  1. 关于Django接入LDAP。首先,你得有一个LDAP系统(http://eric_ldap.oschina.com)。
  2. 在LDAP系统中创建对应的登陆用户,并设置登陆密码
  3. 在LDAP系统中创建对应的登陆用户组(eric_admin),把需要登陆的账号加入到组里面

#Django配置 编辑系统配置文件(setting),直接添加在配置最后即可

import ldap
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType, GroupOfUniqueNamesType
# Baseline configuration.

AUTH_LDAP_START_TLS
AUTH_LDAP_SERVER_URI = "ldap://eric_ldap.oschina.com:389"  #配置ldap的服务地址

# 指定使用ldap作为认证系统
AUTH_LDAP_BIND_DN = "uid=admin,cn=users,cn=accounts,dc=oschina,dc=com"
AUTH_LDAP_BIND_PASSWORD = "123qwe"

# ldap的用户搜索的路径,可以使用LDAP的客户端查看用户的搜索路径
# 我这边使用的ldapBorwser查看的ldap账号结构和信息
AUTH_LDAP_USER_SEARCH = LDAPSearch("cn=users,cn=accounts,dc=oschina,dc=com",
    ldap.SCOPE_SUBTREE, "(uid=%(user)s)")

# ldap用户组的搜索路径
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("cn=groups,cn=accounts,dc=oschina,dc=com",
    ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
)

AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn")

# ldap中对于的用户属性同步到django用户账号的属性对应列
AUTH_LDAP_USER_ATTR_MAP = {  
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail"
} 

AUTH_LDAP_USER_FLAGS_BY_GROUP = {
#定义用户可以登录admin后台的组是哪个,前面ldap中已经创建了这个组,并加入了指定用户
# 默认创建的django用户是不能登录admin后台的
    "is_staff": "cn=eric_admin,cn=groups,cn=accounts,dc=oschina,dc=com", 
#定义用户可以完全操作admin后台的组是哪个,前面ldap中已经创建了这个组,并加入了指定用户
    "is_superuser": "cn=eric_admin,cn=groups,cn=accounts,dc=oschina,dc=com" 
}

# 同步ldap的用户信息到django中
# 如果第一次登录django中没有此用户,ldap中有,可以自动在django中将用户复制过去,并指定权限
AUTH_LDAP_ALWAYS_UPDATE_USER = True

# 设定django第一采用ldap权限认证,如果ldap中没有用户,再使用django中的用户认证
AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
)

#效果 无需其他操作,重启django系统,然后使用ldap的用户登陆即可。

如果django本身无此用户,可以通过ldap账号正常登陆,并权限赋予成功,就OK了

http://www.developcls.com/qa/f61d433c56014bb8b29f7d516e7c4345.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个用于建立Web应用程序的开源Python框架,而ChatGPT是一个人工智能聊天机器人模型。要在Django接入ChatGPT,需要进行以下步骤: 1. 安装ChatGPT:首先,需要从OpenAI官方网站获取ChatGPT模型的API密钥,并使用该密钥将ChatGPT模型下载到本地。 2. Django项目配置:在Django项目的设置文件中,添加ChatGPT所需的相关配置,包括API密钥、模型路径等。确保将ChatGPT的配置信息与Django项目的配置文件连接起来。 3. 创建视图函数:在Django项目中创建一个接收用户请求并调用ChatGPT模型的视图函数。可以使用Django的内置视图函数或自定义视图函数来实现。 4. 处理用户输入:在视图函数中获取用户输入的文本,并将其作为输入传递给ChatGPT模型进行处理。可以使用Django的请求对象来获取用户输入数据。 5. 调用ChatGPT:使用API密钥和模型路径,将用户输入传递给ChatGPT模型进行处理。可以使用ChatGPT提供的Python API来进行调用,并获取机器人生成的回复。 6. 构建并返回响应:将ChatGPT生成的回复构建成Django的响应对象,并将其返回给用户。可以使用Django内置的HttpResponse类或JsonResponse类来构建响应。 7. 前端展示:在前端页面中将用户的请求和ChatGPT生成的回复展示出来,可以使用Django的模板语言来渲染页面。 通过以上步骤,我们就可以在Django项目中成功接入ChatGPT,并实现一个基于Web的聊天机器人应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值