基于Python 3.8 + Django 3.2的密码自助平台,AD用户自助修改密码,结合<钉钉>/<企业微信>应用免密码授权后可自行重置密码、解锁自己的账号。
因为本公司AD是早期已经在用,用户的个人信息不是十分全面,例如:用户手机号。
钉钉是后来才开始使用,钉钉默认是使用手机号登录。
用户自行重置密码时如果通过手机号来进行钉钉与AD之间的验证就行不通了。
已经与之前不同,现在改成内嵌小应用,不再支持直接通过网页开始,之前的扫码方式有点多此一举的味道。
无论是钉钉、微信,均是通过提取用户邮箱的前缀部分来作为关联AD的账号,所以目前的识别逻辑就需要保证邮箱的前缀和AD的登录账号是一致的。 如果您的场景不是这样,请按自己的需求修改源代码适配。
AD必须使用SSL才能修改密码(这里被坑了N久...)
自行部署下AD的证书服务,并颁发CA证书,重启服务器生效。
具体教程百度一下,有很多。
如果想在点击应用之后自动跳转到重置页面,请将回调接口配置成YOURDOMAIN.com/auth
如果想实现进入应用就自动授权,跳转重置页面,可将回调域名指定向pwd.abc.com/auth
参考截图配置:
废弃,已经不再需要,如果之前有配置,可以删除!!
如果想实现进入应用就自动授权,跳转重置页面,可将回调域名指定向pwd.abc.com/auth
参考截图:
使用脚本自动快速部署,只适合Centos,其它发行版本的Linux请自行修改相关命令。
修改conf/local_settings.py中的参数,按自己的实际参数修改
chmod +x auto-install.sh
./auto-install.sh
等待所有安装完成。
项目目录下的requestment文件里记录了所依赖的相关python模块,安装方法:
/usr/local/python3/bin/pip3 install -r requestment
等待所有模块安装完成之后进行下一步。
修改conf/local_settings.py中的参数,按自己的实际参数修改
安装完依赖后,直接执行
/usr/local/python3/bin/python3 manager.py runserver x.x.x.x:8000
即可临时访问项目,线上不适用这种方法,线上环境请使用uwsgi。
## 修改uwsig.ini配置:
IP和路径按自己实际路径修改
请自行修改将脚本修改完之后
复制到/etc/init.d/,给予执行权限。
执行/etc/init.d/uwsigserver start 启动
Nginx Server配置:
server {
listen 80;
server_name pwd.abc.com;
location / {
proxy_pass http://192.168.x.x:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
access_log off;
}