Windows Active Directory + self-service-password(SSP)域控密码自助修改方案

目录

环境准备

  • CentOS7.8(优化过Selinux和Firewalld)
  • php-7.3.33-14.el7.remi.x86_64
  • self-service-password-1.5.4
bash 复制代码
yum install -y epel-release yum-utils
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php73  #安装self-service-password的php版本要求>=7.3
yum install -y php

php -v #版本 7.3.33 (cli)

安装 self-service-password

SSP版本列表:https://ltb-project.org/rpm/7Server/noarch/

bash 复制代码
cat>/etc/yum.repos.d/ltb-project.repo <<EOF
[ltb-project-noarch]
name=LTB project packages (noarch)
baseurl=https://ltb-project.org/rpm/7Server/noarch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-project
EOF

rpm --import https://ltb-project.org/documentation/_static/RPM-GPG-KEY-LTB-project

yum install self-service-password-1.5.4 #低版本SSP适配低版本php
systemctl enable httpd

修改SSP配置

bash 复制代码
rpm -ql self-service-password|grep conf  #查看配置文件
cd /usr/share/self-service-password/conf
cp config.inc.php config.inc.php-bak

修改 config.inc.php

php 复制代码
$ldap_url = "ldaps://dc01.xxxyyyzzz.com";
$ldap_binddn = "manager@xxxyyyzzz.com";
$ldap_bindpw = 'XXXXXXXXXXXXXXXXX';
$ldap_base = "dc=xxxyyyzzz,dc=com";
$ldap_filter = "(&(objectClass=user)($ldap_login_attribute={login})(!(userAccountControl:1.2.840.113556.1.4.803:=2)))";
$ad_options['change_expired_password'] = true;
$who_change_password = "manager";
$keyphrase = "abcdefg1234567";
$ad_mode = true;
$ldap_login_attribute = "sAMAccountName";

注意:manager账号用来执行密码修改操作,需要有对应权限

从AD域控服务器导出根证书

  1. 添加管理单元

win+R输入 mmc ,打开证书控制台。

  1. 导出CA证书

在【受信任的根证书颁发机构】中的【证书】文件夹中,找到站点域名相应的CA证书

右键>>>所有任务>>>导出(格式选择Base64编码格式)

将根证书上传到SSP服务器

假设导出CA证书文件名:AD_root_ca.cer

  • 【推荐】方法1:
bash 复制代码
mv AD_root_ca.cer /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
  • 方法2:
bash 复制代码
mv AD_root_ca.cer /etc/openldap/certs/AD_root_ca.cer

修改/etc/openldap/ldap.conf

复制代码
TLS_CACERT /etc/openldap/certs/AD_root_ca.cer

测试验证结果

浏览器打开 http://SSP服务器IP/

输入您的旧密码并设置新密码:

附:命令行验证工具

验证CA证书:

bash 复制代码
openssl x509 -in /etc/openldap/certs/AD_root_ca.cer -text -noout

验证用户密码:

bash 复制代码
yum install openldap-clients
ldapsearch -x -H ldap://dc01.xxxyyyzzz.com:389 -D "cn=manager,dc=xxxyyyzzz,dc=com" -b "dc=xxxyyyzzz,dc=com" -W "CN=aaa"