• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 宝剑锋从磨砺出,梅花香自苦寒来!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

<二>openLDAP学习笔记–web部署和用户管理思路以及密码自助修改

LDAP eryajf 2周前 (11-03) 99°C 已收录 0个评论
本文预计阅读时间 16 分钟

1,配置管理端。

  • 安装apache 和php环境
yum install php php-pear php-mbstring ntpdate httpd php-ldap -y     #php-ldap是让php程序连接ldap的组件

systemctl start httpd
systemctl enable httpd
  • 调整apache和php的配置文件,修改apache的默认首页类型,将index.php加入其中
vim /etc/httpd/conf/httpd.conf +164

<IfModule dir_module>
    DirectoryIndex  index.php
</IfModule>
  • 重启apache
systemctl restart httpd
  • 修改php.ini的时区
vi /etc/php.ini 

date.timezone = "Asia/Shanghai"
  • 配置phpldapadmin
wget https://nchc.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.tgz
tar xf phpldapadmin-1.2.3.tgz 
mv phpldapadmin-1.2.3 /var/www/html/phpldapadmin

cp /var/www/html/phpldapadmin/config/config.php.example /var/www/html/phpldapadmin/config/config.php.example.bak

mv /var/www/html/phpldapadmin/config/config.php.example /var/www/html/phpldapadmin/config/config.php
  • 修改配置文件,填写端口,地址和RootDN
vi /var/www/html/phpldapadmin/config/config.php

$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=eryajf,dc=net'));
  • 去浏览器验证登录

    http://10.3.0.42/phpldapadmin

    登录名为DN:cn=admin,dc=eryajf,dc=net
    密码为第二次设置的密码:eryajf@456

image-20191103202211417

2,思路简单梳理。

关于用户管理方面,这里简单梳理一下思路,现在看到如上图所示,在总域名之下,分了几个组别,其中cn是管理者,再往下建了两个真正存放用户的小组(当然,真实的概念可能从组织的角度去看),这里怎么看不要紧,重要的是,能用自己的思路理解了,然后运用起来就好了。

现在的思路是,所有用户,全部都在People这个组内,新来员工创建账号,也都分配在这里,针对一些全员性质的授权,比如全员共用的文档系统等,可以直接对这一组进行授权,也就相当于对全员进行了授权。另外的Group则可以真正作为组进行二次细分,某些重要应用,或者部分性比较强的应用,都可以通过在这个下边创建一个小组进行区分,从而授权的时候更加便捷。

以上两种授权方案在后边的实战配置当中都会给出演示,先按着刚刚的思路创建一些测试用户,到后边一配好,一切就都明白了。


创建普通用户:

  • 在People之下点击创建新条目
  • 模板选择默认
  • ObjectClasses选择inetOrgPerson,然后点击继续
  • 从上而下填写,RDN选择 User Name(uid)
  • 然后开始正式的人员信息填写
    • cn:zhangs
    • sn:zhangs
    • displayName:张三
    • 电子邮件:zhangs@qq.com
    • ou:People
    • 密码:123456
    • User Name:zhangs

然后点击创建,提交之后,一个普通用户就创建成功了。一般情况下,应用直接通过这一曾来管理用户即可。


但是有些情况下,再另外拉出来一个分组,从软件的角度来分组,会更好一些。

创建一个应用组:

  • 在Group之下创建新条目
  • 模板选择默认
  • ObjectClasses选择groupOfNames,然后点击继续
  • 从上而下填写,RDN选择 cn(cn)
  • 然后开始填写组信息
    • cn:jenkins
    • member:点击后边的搜索框,选择将要包含的用户

然后点击创建,提交之后,就创建了一个jenkins组,配置ldap的时候,可以基于这个组来进行管理。

3,配置自助修改密码

一般情况下,我们给先入职同学创建账户的时候,都会设置一个统一的账号,然后再由该同学自助修改密码,那么,就需要部署一个自助修改密码的服务,这里采用docker方式部署,简单便捷。

cat docker-compose.yml

version: '2'

services:
  ssp-app:
    image: registry.cn-hangzhou.aliyuncs.com/eryajf/self-service-password
    container_name: ssp-app
    volumes:
      - ./data/:/www/ssp
      - ./logs/:/www/logs
    ports:
      - 8888:80
    environment:
      - VIRTUAL_HOST=http://10.3.0.42
      - VIRTUAL_NETWORK=nginx-proxy
      - LETSENCRYPT_HOST=10.3.0.42
      - LETSENCRYPT_EMAIL=Linuxlql@163.com

      - LDAP_SERVER=ldap://10.3.0.42:389
      - LDAP_STARTTLS=false
      - LDAP_BINDDN=cn=admin,dc=eryajf,dc=net
      - LDAP_BINDPASS=eryajf@456
      - LDAP_BASE_SEARCH=ou=People,dc=eryajf,dc=net
      - LDAP_LOGIN_ATTRIBUTE=uid
      - LDAP_FULLNAME_ATTRIBUTE=cn

# Active Directory mode
# true: use unicodePwd as password field
# false: LDAPv3 standard behavior
      - ADMODE=false
# Force account unlock when password is changed
      - AD_OPT_FORCE_UNLOCK=false
# Force user change password at next login
      - AD_OPT_FORCE_PWD_CHANGE=false
# Allow user with expired password to change password
      - AD_OPT_CHANGE_EXPIRED_PASSWORD=false

# Samba mode
# true: update sambaNTpassword and sambaPwdLastSet attributes too
# false: just update the password
      - SAMBA_MODE=false

# Shadow options - require shadowAccount objectClass
# Update shadowLastChange
      - SHADOW_OPT_UPDATE_SHADOWLASTCHANGE=false
# Hash mechanism for password:
# SSHA
# SHA
# SMD5
# MD5
# CRYPT
# clear (the default)
# auto (will check the hash of current password)
# This option is not used with ad_mode = true
      - PASSWORD_HASH=SHA

# Local password policy
# This is applied before directory password policy
# Minimal length
      - PASSWORD_MIN_LENGTH=6
# Maximal length
      - PASSWORD_MAX_LENGTH=30
# Minimal lower characters
      - PASSWORD_MIN_LOWERCASE=2
# Minimal upper characters
      - PASSWORD_MIN_UPPERCASE=1
# Minimal digit characters
      - PASSWORD_MIN_DIGIT=1
# Minimal special characters
      - PASSWORD_MIN_SPECIAL=0
# Dont reuse the same password as currently
      - PASSWORD_NO_REUSE=true
# Show policy constraints message:
# always
# never
# onerror
      - PASSWORD_SHOW_POLICY=never
# Position of password policy constraints message:
# above - the form
# below - the form
      - PASSWORD_SHOW_POLICY_POSITION=above

# Who changes the password?
# Also applicable for question/answer save
# user: the user itself
# manager: the above binddn
      - WHO_CAN_CHANGE_PASSWORD=user

## Questions/answers
# Use questions/answers?
# true (default)
# false
      - QUESTIONS_ENABLED=false

## Mail
# LDAP mail attribute
      - LDAP_MAIL_ATTRIBUTE=mail
# Who the email should come from
      - MAIL_FROM=Linuxlql@163.com
      - MAIL_FROM_NAME=Password Reset
# Notify users anytime their password is changed
      - NOTIFY_ON_CHANGE=true
# PHPMailer configuration (see https://github.com/PHPMailer/PHPMailer)
      - SMTP_DEBUG=0
      - SMTP_HOST=smtp.163.com
      - SMTP_AUTH_ON=true
      - SMTP_USER=Linuxlql@163.com
      - SMTP_PASS=xxxxxx # 这里是邮箱的授权码,经常配置邮箱的你,一定明白我的意思
      - SMTP_PORT=25
      - SMTP_SECURE_TYPE=tls
      - SMTP_AUTOTLS=false
 ## SMS
# Use sms (NOT WORKING YET)
      - USE_SMS=false
# Reset URL (if behind a reverse proxy)
      - IS_BEHIND_PROXY=true
# Display help messages
      - SHOW_HELP=true
# Language
      - LANG=en
# Debug mode
      - DEBUG_MODE=false
# Encryption, decryption keyphrase
      - SECRETEKEY=secretkey
## CAPTCHA
# Use Google reCAPTCHA (http://www.google.com/recaptcha)
      - USE_RECAPTCHA=false
# Go on the site to get public and private key
      - RECAPTCHA_PUB_KEY=akjsdnkajnd
      - RECAPTCHA_PRIV_KEY=aksdjnakjdnsa
## Default action
# change
# sendtoken
# sendsms
      - DEFAULT_ACTION=change

    networks:
      - proxy-tier
    restart: always

networks:
  proxy-tier:
    external:
      name: nginx-proxy

然后直接运行服务即可。访问对应端口可以看到更改密码的页面:

image-20191025225415259

如果知道原来密码,直接在自助密码服务处更改即可,如果忘记原来密码,可以通过邮件方式进行更改。


weinxin
扫码订阅本站,第一时间获得更新
微信扫描二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明<二>openLDAP学习笔记–web部署和用户管理思路以及密码自助修改
喜欢 (0)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
关于作者:
学无止境,我愿意无止境学。书山有路,我愿意举身投火,淬炼成金!

您必须 登录 才能发表评论!