AD Password Self Service 是 @capricornxl 基于 Python + Django 创立的一个密码自助平台,用户通过钉钉或者企业微信授权,可以实现自助重置、解锁 AD 域用户密码。

项目地址:https://github.com/capricornxl/ad-password-self-service

目录

准备工作企业微信创建自建应用服务器系统基础配置配置密码自助平台搭建 Redis 服务配置 uwsgi 服务搭建 Nginx 服务应用上线测试

准备工作

本文的测试环境为 CentOS 7.8 操作系统,并且已搭建好 AD 域相关服务。另外你还需要一台带公网 IP 地址的服务器,以通过 API 接口获取企业微信数据。

如果配置过程中遇到项目文件无效,可尝试下载共享链接中的文件。(非必选)

百度网盘分享下载提取码:hmh1

阿里云盘分享下载提取码:au66

企业微信创建自建应用

1、使用企业微信管理员账号,点击此处 登录到管理后台。

2、选择「我的企业」>「企业信息」,在页面底部找到并记录下「企业 ID」。

3、接着选择「应用管理」>「应用」>「自建」,点击「创建应用」。

4、上传应用 Logo,并填写应用名称等信息,点击「创建应用」。

5、创建完成后进入应用,可以看到 AgentId、Secret 等信息,这些信息在使用企业微信 API 时会用到,选择「查看」Secret。

6、应用 Secret 会发送到管理员的消息列表中,请勿向第三方人员泄露密钥信息。

7、接着设置应用主页,应用类型选择「网页」,输入网页地址。

8、找到「开发者接口」下的「网页授权及 JS-SDK」,选择「设置可信域名」。

9、在「可信域名」下填写服务器的域名,并完成域名的归属认证。

10、接着设置「企业微信授权登录」,在「Web 网页」类型下设置「授权回调域」。

11、接着为应用配置一个「企业可信 IP」,输入服务器的公网 IP 地址。只有设置的服务器 IP 地址可以通过接口获取企业数据。

服务器系统基础配置

1、进入 CentOS 服务器,首先需要禁用 SELINUX 服务,输入以下命令编辑配置文件。

vi /etc/sysconfig/selinux

2、将 SELINUX=enforcing 指令更改为 SELINUX=disabled,保存退出。

3、修改成功后重启系统。

reboot

4、安装以下所需组件。

yum -y install wget

yum -y install unzip

yum -y install psmisc

5、CentOS 7.8 的默认 Python 版本为 2.7.5,需要将其升级到 3.8.2 版本。操作步骤可前往 https://blog.kobin.cn/blog/system/s2/2663.html 进行查看。

配置密码自助平台

1、将项目文件下载到服务器并解压。

cd /opt/

wget https://github.com/capricornxl/ad-password-self-service/archive/refs/heads/master.zip

unzip master.zip

# 这里我将文件夹重命名为对应的版本号,可根据实际情况进行调整

mv ad-password-self-service-master /opt/ad-password-self-service-1.0.6.1

2、使用 pip 安装依赖项,项目目录下的 requestment 文件里记录了所依赖的相关 Python 模块。

cd /opt/ad-password-self-service-1.0.6.1

pip install -r requirement

3、等待所有模块安装完成之后,修改配置文件 local_settings.py 的参数。

vi conf/local_settings.py

4、填写 AD 服务器的配置信息。

5、验证类型输入「WEWORK」,补充企业微信的「企业 ID」、「AgentId」和「Secret」信息。

6、填写「域名」和「站点标题」,并设置一个 Redis 服务的密码,完成后保存退出。

搭建 Redis 服务

参考文章:https://blog.csdn.net/qq_39187538/article/details/126485922

1、获取 Redis 安装包并解压。

cd /opt/

wget https://download.redis.io/releases/redis-7.0.2.tar.gz

tar -zxvf redis-7.0.2.tar.gz

2、 进入解压后的 Redis 目录,使用 make 命令进行编译,并执行安装。

cd redis-7.0.2/ && make

cd src/ && make install

3、安装完成后,编辑 redis.conf 配置文件。

vi /opt/redis-7.0.2/redis.conf

4、设置允许 Redis 服务在后台运行。

5、Redis 服务默认无密码,需要开启密码保护。此处设置的密码和 local_settings.py 中的密码保持一致。

6、设置允许访问 Redis 服务的 IP 地址。

7、配置文件修改完成后,保存退出。

8、在系统服务目录里创建 redis.service 文件。

vi /usr/lib/systemd/system/redis.service

9、在文件中添加以下内容,保存退出。

[Unit]

Description=redis-server

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/bin/redis-server /opt/redis-7.0.2/redis.conf

PrivateTmp=true

[Install]

WantedBy=multi-user.target

10、重载系统服务,并启动 Redis 服务。

systemctl daemon-reload

systemctl enable redis

systemctl start redis

配置 uwsgi 服务

1、修改 uwsig.ini 配置文件。

vi /opt/ad-password-self-service-1.0.6.1/uwsgi.ini

2、设置项目目录的所在路径,以及线程数,完成后保存退出。

3、编辑 uwsgiserver 文件,设置项目目录的所在路径,以及 uwsgi 服务的所在路径,完成后保存退出。

vi /opt/ad-password-self-service-1.0.6.1/uwsgiserver

# 查看 uwsgi 的安装位置

whereis uwsgi

4、将项目目录下的 uwsgiserver 复制到 /etc/init.d/,给予执行权限。

cp /opt/ad-password-self-service-1.0.6.1/uwsgiserver /etc/init.d/uwsgiserver

chmod +x /etc/init.d/uwsgiserver

5、在系统服务目录里创建 uwsgiserver.service 文件。

vi /usr/lib/systemd/system/uwsgiserver.service

6、在文件中添加以下内容,保存退出。

[Unit]

Description=uwsgiserver

After=network.target

[Service]

Type=forking

ExecStart=/etc/init.d/uwsgiserver start

ExecReload=/etc/init.d/uwsgiserver restart

ExecStop=/etc/init.d/uwsgiserver stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

7、重载系统服务,并启动 uwsgiserver 服务。

systemctl daemon-reload

systemctl enable uwsgiserver

systemctl start uwsgiserver

搭建 Nginx 服务

参考文章:https://blog.csdn.net/qq_33381971/article/details/123328191

1、安装所需依赖项。

yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel

2、获取 Nginx 安装包并解压。

cd /opt/

wget -c https://nginx.org/download/nginx-1.18.0.tar.gz

tar -zxvf nginx-1.18.0.tar.gz

3、进入解压后的 Nginx 目录,执行安装。

cd nginx-1.18.0/

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

make && make install

4、编辑 Nginx 配置文件,修改完成后保存退出。

vi /usr/local/nginx/conf/nginx.conf

# 在 http 中添加以下命令

include vhosts/*.conf

5、创建虚拟主机文件夹和证书文件夹,并将 SSL 加密证书上传到该路径下。

mkdir -p /usr/local/nginx/conf/vhosts/cert/ad-password-self-service

6、创建虚拟主机配置文件。

vi /usr/local/nginx/conf/vhosts/ad-password-self-service.conf

7、添加以下内容后,保存退出。

server {

listen 80;

listen 443 ssl;

server_name *****.com; # 此处输入站点域名

# 强制跳转HTTPS

if ($server_port !~ 443){

rewrite ^(/.*)$ https://$host$1 permanent;

}

# 证书所在路径

ssl_certificate /usr/local/nginx/conf/vhosts/cert/ad-password-self-service/*****.pem;

ssl_certificate_key /usr/local/nginx/conf/vhosts/cert/ad-password-self-service/*****.key;

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_session_timeout 10m;

ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

ssl_prefer_server_ciphers on;

location / {

proxy_pass http://192.168.*.*:8443; # 此处输入公网 IP 地址和 uwsgi 服务端口

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;

}

8、在系统服务目录里创建 nginx.service 文件。

vi /usr/lib/systemd/system/nginx.service

9、添加以下内容后,保存退出。

[Unit]

Description=nginx service

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

10、重载系统服务,并启动 Nginx 服务。

systemctl daemon-reload

systemctl enable nginx

systemctl start nginx

应用上线测试

1、放行防火墙端口。

firewall-cmd --permanent --zone=public --add-port=80/tcp

firewall-cmd --permanent --zone=public --add-port=443/tcp

firewall-cmd --permanent --zone=public --add-port=8443/tcp

firewall-cmd --reload

2、检查服务端口占用。

yum -y install net-tools

netstat -tunlp

3、打开企业微信客户端,点击工作台,选择我们创建的应用。软件提示信息授权,点击同意。

4、成功进入应用页面,尝试进行密码重置操作。服务搭建完成。

本文为原创文章,著作权归作者所有:来自「KOBIN 技术随笔」作者的原创作品,转载请标明出处。通过企业微信自助重置 AD 域用户密码https://blog.kobin.cn/blog/program/p3/2671.html

top
Copyright © 2088 英雄新物攻略库 - MOBA游戏活动智库 All Rights Reserved.
友情链接