ldap统一用户认证(干货分享)

管理员 2024-11-25 03:08:29 0

openldap + phpldapadmin + nginx 搭建部署教程(完整版)

1.什么是LDAP

LDAP是轻量目录访问协议(LightweightDirectory Access Protocol),LDAP标准实际上是在X.500标准基础上产生的一个简化版本,可以根据需要定制。LDAP 服务器本质上是一个为只读访问而优化的非关系型数据库。OpenLDAP 是 LDAP 协议的一个开源实现。提供了目录服务的所有功能,包括目录搜索、身份认证、安全通道、过滤器等等。大多数的 Linux 发行版里面都带有 OpenLDAP 的安装包。OpenLDAP 服务默认使用非加密的 TCP/IP 协议来接收服务的请求,并将查询结果传回到客户端。由于大多数目录服务都是用于系统的安全认证部分比如:用户登录和身份验证,所以它也支持使用基于 SSL/TLS 的加密协议来保证数据传送的保密性和完整性。OpenLDAP 是使用 OpenSSL 来实现 SSL/TLS 加密通信的。(摘自https://www.cnblogs.com/kevingrace/p/5773974.html)OpenLDAP主要用作对各种服务访问做后台认证以及用户数据权限管控。(例如,访问 Samba 时,LDAP 可以起到域控制器的作用;或者 Linux 系统认证 时代替 /etc/passwd 的作用。)

DAP特点

LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了LDAP可以很快地得到查询结果,不过在写方面,就慢得多LDAP提供了静态数据的快速查询方式:Client/server模型,Server 用于存储数,Client提供操作目录信息树的工具,这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前LDAP是一种开放Internet标准,LDAP协议是跨平台的的Interent协议它是基于X.500标准的,与X.500不同,LDAP支持TCP/IP(即可以分布式部署)

LDAP中提供三种身份认证机制

匿名。基本认证:通过用户名和密码进行身份识别,又分为简单密码和MD5密码认证LDAP提供的在SSL和TLS安全通道基础上进行的身份认证,包括数字证书的认证。

LDAP端口号:389,636389 明文端口636 加密端口 (SSL/TLS)

LDAP目录数据结构

在LDAP中目录是按照树型结构组织——目录信息树(DIT) ,DIT是一个主要进行读操作的数据库DIT由条目(Entry)组成,条目相当于关系数据库中表的记录;条目是具有分辨名DN(Distinguished Name)的属性-值对(Attribute-value,简称AV)的集合

在目录树中怎么组织数据cn=Fran Smith,ou=employees,dc=foobar,dc=com

在UNIX文件系统中,最顶层是根目录(root),LDAP目录也通常用ROOT做根,通常称为BaseDN因为历史(X.500)的原因,LDAP目录用ou(Organization Unit)从逻辑上把数据分开来。ou 也是一种条目,容器条目ou下就是真正的用户条目2.LDAP基本概念

2.1 Entry条目,也叫记录项,是LDAP中最基本的颗粒,就像字典中的词条,或者是数据库中的记录。通常对LDAP的添加、删除、更改、检索都是以条目为基本对象的。

dn:每一个条目都有一个唯一的标识名(distinguished Name ,DN),如上图中一个 dn:"cn=baby,ou=marketing,ou=people,dc=mydomain,dc=org" 。通过DN的层次型语法结构,可以方便地表示出条目在LDAP树中的位置,通常用于检索。rdn:一般指dn逗号最左边的部分,如cn=baby。它与RootDN不同,RootDN通常与RootPW同时出现,特指管理LDAP中信息的最高权限用户。Base DN:LDAP目录树的最顶部就是根,也就是所谓的“Base DN",如"dc=mydomain,dc=org"。补充:

常见的两种DN设置:dn格式就是“cn=Tom,ou=employees,dc=admin,dc=com”

基于cn(姓名)

cn=test,ou=auth,dc=baike,dc=com ,最常见的cn是/etc/group转来的条目

基于uid(User ID)

uid=test, ou=auth,dc=baike,dc=com 最常见的cn是/etc/group转来的条目

2.2 schema对象类(ObjectClass)、属性类型(AttributeType)、语法(Syntax)分别约定了条目、属性、值,他们之间的关系如下图所示。所以这些构成了模式(Schema)——对象类的集合。条目数据在导入时通常需要接受模式检查,它确保了目录中所有的条目数据结构都是一致的。schema(一般在/etc/ldap/schema/目录)在导入时要注意前后顺序。在LDAP中,schema用来指定一个目录中所包含的对象(objects)的类型(objectClass),以及每一个类型(objectClass)中必须提供的属性(Atrribute)和可选的属性。可将schema理解为面向对象程序设计中的类,通过类定义一个具体的对象。LDIF中的数据条目可理解为是一个具体的对象,是通过schema来规划创建的。因此,schema是一个数据模型,用来决定数据按什么方式存储,并定义存储在不同的条目(Entry)下的数据之间的关系。schema需要在主配置文件slapd.conf中指定,以用来决定在目录中可以使用哪些objectClass。2.3 objectClass(对象类)LDAP中,一个条目必须包含一个objectClass属性,且需要赋予至少一个值。每一个值将用作一条LDAP条目进行数据存储的模板;模板中包含了一个条目必须被赋值的属性和可选的属性。objectClass有着严格的等级之分,最顶层是top和alias。例如,organizationalPerson这个objectClass就隶属于person,而person又隶属于top对象类有三种类型:结构类型(Structural)、抽象类型(Abstract)和辅助类型(Auxiliary)。结构类型是最基本的类型,它规定了对象实体的基本属性,每个条目属于且仅属于一个结构型对象类。抽象类型可以是结构类型或其他抽象类型父类,它将对象属性中共性的部分组织在一起,称为其他类的模板,条目不能直接集成抽象型对象类。辅助类型规定了对象实体的扩展属性。每个条目至少有一个结构性对象类。

结构型(Structural):如person和organizationUnit;辅助型(Auxiliary):如extensibeObject;抽象型(Abstract):如top,抽象型的objectClass不能直接使用。

2.4 Attribute(属性)属性(Attribute)类似于程序设计中的变量,可以被赋值。在OpenLDAP中声明了许多常用的Attribute(用户也可自己定义Attribute)。

每个条目都可以有很多属性(Attribute),比如常见的人都有姓名、地址、电话等属性。每个属性都有名称及对应的值,属性值可以有单个、多个,比如你有多个邮箱。

属性不是随便定义的,需要符合一定的规则,而这个规则可以通过schema制定。比如,如果一个entry没有包含在 inetorgperson 这个 schema 中的objectClass: inetOrgPerson,那么就不能为它指定employeeNumber属性,因为employeeNumber是在inetOrgPerson中定义的。常见的Attribute含义如下:● c:国家。● cn:common name,指一个对象的名字。如果指人,需要使用其全名。● dc:domain Component,常用来指一个域名的一部分。● givenName:指一个人的名字,不能用来指姓。● l:指一个地名,如一个城市或者其他地理区域的名字。● mail:电子信箱地址。● o:organizationName,指一个组织的名字。● ou:organizationalUnitName,指一个组织单元的名字。● sn:surname,指一个人的姓。● telephoneNumber:电话号码,应该带有所在的国家的代码。● uid:userid,通常指某个用户的登录名,与Linux系统中用户的uid不同。objectClass是一种特殊的Attribute,它包含其他用到的Attribute以及其自身。

3.安装配置

3.1.安装包说明

安装包名称

说明

openldap

openldap服务端和客户端必须用的库文件

openldap-servers

用于启动服务和设置. 包含单独的ldap后台守护程序

openldap-clients

在LDAP服务端使用,用户增删改查的命令行环境

openldap-devel

devel包,可选择进行安装

openldap-servers-sql

支持sql模块,可进行选择性安装

migrationtools

通过migrationtools实现OpenLDAP用户及用户组的添加,导入系统账户,可进行选择性安装

compat-openldap

openldap兼容性库

3.2.安装配置安装openldap参考OpenLDAP + phpLDAPadmin ,写的简单明了,这里做一下搬运工

yum install openldap openldap-clients openldap-servers -y yum install phpldapadmin -y

生成管理员密码slappasswd -s Admin123

{SSHA}aAwdh+JnUunpTSLlIw/zQG3t6/rXNI58

修改olcDatabase={2}hdb.ldif文件 将生成的加密字符写进配置文件

vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

#修改olcSuffix: dc=rockstics,dc=comolcRootDN: cn=Manager,dc=rockstics,dc=com#添加olcRootPW: {SSHA}qtkKhiajMDZpbAS9sS9K4TfnePglsVz4

注意: 配置中dc=rockstics,dc=com 这种只是举例,后面图片或者配置中可能会出现不同的参数,请根据自己的实际情况填写,别照抄哦修改olcDatabase={1}monitor.ldif文件

vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif

olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=rockstics,dc=com" read by * none

验证配置slaptest -u

5f193b58 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"5f193b58 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"config file testing succeeded

配置数据库

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIGchown ldap:ldap -R /var/lib/ldapchmod 700 -R /var/lib/ldap

启动slapd

systemctl start slapd

导入Schema

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldifldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldifldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

添加用户和组

利用migrationtools 生成

yum install migrationtools -y 编辑migrate_common.ph 文件

vim /usr/share/migrationtools/migrate_common.ph

$DEFAULT_MAIL_DOMAIN = "rockstics.com";$DEFAULT_BASE = "dc=rockstics,dc=com";$EXTENDED_SCHEMA = 1;

生成base.ldif 文件

mkdir /etc/openldap/slapd.d/custom_ldif/usr/share/migrationtools/migrate_base.pl > /etc/openldap/slapd.d/custom_ldif/base.ldifldapadd -x -D "cn=admin,dc=rockstics,dc=com" -W -f /etc/openldap/slapd.d/custom_ldif/base.ldif

干货分享,从0搭建LDAP统一认证服务

4.集成phpLDAPadmin web页面4.1 基于HTTPweb服务器配置(nginx 直接看4.2)

安装HTTP,PHP和 phpldapadmin, 基于nginx + php + phpldapadmin的配置请直接拉到后面查看yum install epel-releaseyum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml phpldapadmin

配置http:

vim /etc/httpd/conf.d/phpldapadmin.conf

## Web-based tool for managing LDAP servers#Alias /phpldapadmin /usr/share/phpldapadmin/htdocsAlias /ldapadmin /usr/share/phpldapadmin/htdocs<Directory /usr/share/phpldapadmin/htdocs><IfModule mod_authz_core.c># Apache 2.4Require all granted</IfModule><IfModule !mod_authz_core.c># Apache 2.2Order Deny,AllowDeny from allAllow from 192.168.119.123Allow from ::1</IfModule></Directory>

启动LDAP

systemctl start httpdsystemctl enable httpdsystemctl status httpd

登陆页面即可看到(图片是后面补的,创建用户见 https://blog.csdn.net/rockstics/article/details/108061374):

干货分享,从0搭建LDAP统一认证服务

4.2 基于nginx的web服务器配置

关于如何安装OpenLDAP与phpLDAPadmin在一个Nginx服务器,网上很难找到相关的配置,于是不得不FQ找到了下面的配置记录之,

server {listen 80;server_name phpldapadmin.nausch.org;access_log /var/log/nginx/phpldapadmin_access.log;error_log /var/log/nginx/phpldapadmin_errors.log;root /usr/share/phpldapadmin/htdocs/;index index.php index.html;location ~ \.php {fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}

浏览器访问 http://phpldapadmin.nausch.org如果无法访问,请检查php 版本配置,番外篇中有踩坑说明

番外篇

1.slapd配置说明OpenLDAP 2.3和更高版本已过渡到使用动态运行时配置引擎slapd-config,具备以下特性:

完全启用LDAP使用标准LDAP操作进行管理将其配置数据存储在 LDIF数据库,通常位于/usr/local/etc/openldap/slapd.d目录中。允许即时更改slapd的所有配置选项,通常无需重新启动服务器即可使更改生效。

本版本(slapd 2.4.44 )仍支持较早版本的slapd.conf 文件,但已弃用该文件,在将来的OpenLDAP版本中将不再支持该文件。可以通过slapd.conf 配置slapd,使用slaptest或任何slap工具将现有的slapd.conf 文件转换为新格式slapd-config:

slaptest -f /usr/local/etc/openldap/slapd.conf -F /usr/local/etc/openldap/slapd.d

测试您是否可以使用上面配置的默认rootdn和rootpw访问cn = config下的条目:

ldapsearch -x -D cn = config -w VerySecret -b cn = config

注意:尽管slapd-config 系统将其配置存储为(基于文本的)LDIF文件,但是您绝对不应直接编辑任何LDIF文件。配置更改应通过LDAP操作执行,例如ldapadd ,ldapdelete或ldapmodify

2.踩坑说明Nginx配置后各种不成功,一直以为是nginx配置的问题(也是之前对nginx配置PHP 不熟的原因,于是又补了一下PHP的知识,PHP中fastcgi和php-fpm是什么东西),后来想了下,可能是因为自己安装的openladp版本比较新和PHP版本不兼容的问题,yum 默认安装的php 版本为PHP 5.4.16,所以升级了PHP 相关所有的组件(Linux下PHP由5.6升级到7.2详细教程)才成功(这里也有一个坑,升级的时候需要将之前PHP所有的组件卸载干净了包括phpadmin,完美跳坑后终于成功)

phpldapadmin nginx配置文件参考2

server {server_name ldap01.linoxide.com;listen 80;# document rootroot /usr/share/nginx/www;index index.php index.html index.htm;# application: phpldapadminlocation /phpldapadmin {alias /usr/share/phpldapadmin/htdocs;index index.php index.html index.htm;}location ~ ^/phpldapadmin/.*\.php$ {root /usr/share;if ($request_filename !~* htdocs) {rewrite ^/phpldapadmin(/.*)?$ /phpldapadmin/htdocs$1;}fastcgi_pass unix:/run/php/php7.0-fpm.sock; ##fastcgi_pass的另一种配置方式,相比于端口方式更高效fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename;include fastcgi_params;}# loggingerror_log /var/log/nginx/phpldapadmin.error.log;access_log /var/log/nginx/phpldapadmin.access.log;}

浏览器请求:http://ldap01.linoxide.com/phpldapadmin

5.LDAP常用命令说明

ldapadd选项:-x 进行简单认证-D 用来绑定服务器的DN-h 目录服务的地址-w 绑定DN的密码-f 使用ldif文件进行条目添加的文件如:

ldapadd -x -D "cn=admin,dc=rockstics,dc=com" -W -f /etc/openldap/slapd.d/custom_ldif/base.ldifldapadd -Y EXTERNAL -H ldapi:/// -f add_olcOverlay.ldif

ldapmodify选项-a 添加新的条目.缺省的是修改存在的条目.-C 自动追踪引用.-c 出错后继续执行程序并不中止.缺省情况下出错的立即停止.-D binddn 指定搜索的用户名(一般为一dn 值).-e 设置客户端证书文件,例: -e cert/client.crt-E 设置客户端证书私钥文件,例: -E cert/client.key-f file 从文件内读取条目的修改信息而不是从标准输入读取.-H ldapuri 指定连接到服务器uri。常见格式为ldap://hostname:port-h ldaphost 指定要连接的主机的名称/ip 地址.它和-p 一起使用.-p ldapport 指定要连接目录服务器的端口号.它和-h 一起使用.-M[M] 打开manage DSA IT 控制. -MM 把该控制设置为重要的.-n 用于调试到服务器的通讯.但并不实际执行搜索.服务器关闭时,返回错误;服务器打开时,常和-v 参数一起测试到服务器是否是一条通路.-v 运行在详细模块.在标准输出中打出一些比较详细的信息.比如:连接到服务器的ip 地址和端口号等.-V 启用证书认证功能,目录服务器使用客户端证书进行身份验证,必须与-ZZ 强制启用TLS 方式配合使用,并且匿名绑定到目录服务器.-W 指定了该参数,系统将弹出一提示入用户的密码.它和-w 参数相对使用.-w bindpasswd 直接指定用户的密码. 它和-W 参数相对使用.-x 使用简单认证.-Z[Z] 使用StartTLS 扩展操作.如果使用-ZZ,命令强制使用StartTLS 握手成功.

ldapmodify -Y EXTERNAL -H ldapi:/// -f modify_syncrepl.ldif

ldapsearch选项-x 进行简单认证-D 用来绑定服务器的DN-w 绑定DN的密码-b 指定要查询的根节点-H 制定要查询的服务器

ldapsearch -x -H ldap://192.168.119.126:389 -b "dc=rockstics,dc=com" |grep uid=ldapuser* ##匿名用户可用ldapsearch -x -H ldap://192.168.119.126:389 -D "cn=Manager,dc=rockstics,dc=com" -b "ou=People,dc=rockstics,dc=com" -w admin123 |grep uid=ldapuser* ##用户认证查询

ldappasswd选项-x 进行简单认证-D 用来绑定服务器的DN-w 绑定DN的密码-S 提示的输入密码-s pass 把密码设置为pass-a pass 设置old passwd为pass-A 提示的设置old passwd-H 是指要绑定的服务器-I 使用sasl会话方式

6.LDAP自助密码服务

参考: https://ltb-project.org/documentation/self-service-password/latest/config_general

vim /etc/yum.repos.d/ltb-project.repo

[ltb-project-noarch]name=LTB project packages (noarch)baseurl=https://ltb-project.org/rpm/$releasever/noarchenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-project

yum install self-service-password -y

Openldap 自助密码服务self-service-password 实现用户认证后自己修改密码 需要设置

$who_change_password = "user"; $default_action = "change";

self-service-password配置文件/usr/share/self-service-password/conf/config.inc.php:

<?php$debug = false;$ldap_url = "ldap://localhost:389"; ##ldap地址,这里在同一台机器上$ldap_starttls = false; ##是否启用TLS证书$ldap_binddn = "cn=admin,dc=rockstics,dc=com"; ##DN账号$ldap_bindpw = "rocsktics"; ##DN密码确保可以连接到LDAP$ldap_base = "ou=People,dc=rockstics,dc=com";$ldap_login_attribute = "uid"; ##登陆用户的属性$ldap_fullname_attribute = "cn"; $ldap_filter = "(&(objectClass=inetOrgPerson)($ldap_login_attribute={login}))"; ##过滤用户的规则$ad_mode = false;$ad_options['force_unlock'] = false;$ad_options['force_pwd_change'] = false;$ad_options['change_expired_password'] = false;$samba_mode = false;$shadow_options['update_shadowLastChange'] = false;$shadow_options['update_shadowExpire'] = false;$shadow_options['shadow_expire_days'] = -1;$hash = "clear";$hash_options['crypt_salt_prefix'] = "$6$";$hash_options['crypt_salt_length'] = "6";$pwd_min_length = 6; ##密码最小长度$pwd_max_length = 12; $pwd_min_lower = 0;$pwd_min_upper = 0;$pwd_min_digit = 0;$pwd_min_special = 0;$pwd_special_chars = "^a-zA-Z0-9";$pwd_no_reuse = true;$pwd_diff_login = true;$pwd_complexity = 0;$use_pwnedpasswords = false;$pwd_show_policy = "never";$pwd_show_policy_pos = "above";$who_change_password = "manager"; ##在LDAP目录中写入时使用的用户凭证,您可以将这些参数留空以进行匿名绑定。在这种情况下,必须使用用户的凭证来完成密码修改 (改为user 可实现用户邮件或者问题或者短信认证后自己修改密码)$use_change = true; ##如果不需要,可以禁用标准密码更改,在这种情况下,请确保还从default_action中删除“exchange”,否则更改页面仍将显示。$change_sshkey = false;$change_sshkey_attribute = "sshPublicKey";$who_change_sshkey = "user"; ##要在LDAP目录书写时使用用户的凭据,替换manager用user的$who_change_password:$notify_on_sshkey_change = false;$use_questions = false; ##是否启用问题认证$answer_objectClass = "extensibleObject";$answer_attribute = "info";$crypt_answers = true;$use_tokens = true; ##是否启用邮箱认证$crypt_tokens = true;$token_lifetime = "3600";$mail_attribute = "mail";$mail_address_use_ldap = false;$mail_from = "admin@163.com";$mail_from_name = "LDAP账号密码重置";$mail_signature = "";$notify_on_change = false;$mail_sendmailpath = '/usr/sbin/sendmail';$mail_protocol = 'smtp';$mail_smtp_debug = 0;$mail_debug_format = 'error_log';$mail_smtp_host = 'smtp.163.com';$mail_smtp_auth = false;$mail_smtp_user = 'admin@163.com';$mail_smtp_pass = 'adminpasd';$mail_smtp_port = 465;$mail_smtp_timeout = 30;$mail_smtp_keepalive = false;$mail_smtp_secure = 'ssl';$mail_smtp_autotls = true;$mail_contenttype = 'text/plain';$mail_wordwrap = 0;$mail_charset = 'utf-8';$mail_priority = 3;$mail_newline = PHP_EOL;$use_sms = false; ##禁用短信验证$sms_method = "mail";$sms_api_lib = "lib/smsapi.inc.php";$sms_attribute = "mobile";$sms_partially_hide_number = true;$smsmailto = "{sms_attribute}@service.provider.com";$smsmail_subject = "Provider code";$sms_message = "{smsresetmessage} {smstoken}";$sms_sanitize_number = false;$sms_truncate_number = false;$sms_truncate_number_length = 10;$sms_token_length = 6;$max_attempts = 3;$keyphrase = "rockstics"; ##如果您使用加密令牌,则需要一个关键词$show_help = true;$lang = "en";$allowed_lang = array();$show_menu = true;$logo = "images/ltb-logo.png";$background_image = "images/unsplash-space.jpeg";$login_forbidden_chars = "*()&|"; ##禁止特殊字符,防止注入$use_recaptcha = false;$recaptcha_publickey = "";$recaptcha_privatekey = "";$recaptcha_theme = "light";$recaptcha_type = "image";$recaptcha_size = "normal";$recaptcha_request_method = null;$default_action = "change"; ##默认展示页面;change/sendtoken/sendsms(如果你希望用户认证后自己修改密码,当然不想让他在未认证时看到change页面,此时default_action可设置为sendtoken邮件认证,即先通过邮件发送重置密码链接,然后在新的链接里重置密码)if (file_exists (__DIR__ . '/config.inc.local.php')) {require __DIR__ . '/config.inc.local.php';}

配置完重启HTTP即可systemctl restart httpd

干货分享,从0搭建LDAP统一认证服务

self-service-password http配置文件

[root@localhost ~]# cat /etc/httpd/conf.d/self-service-password.conf

<VirtualHost *>DocumentRoot /usr/share/self-service-passwordDirectoryIndex index.phpAddDefaultCharset UTF-8Alias /ssp /usr/share/self-service-password<Directory "/usr/share/self-service-password">AllowOverride NoneRequire all granted</Directory>LogLevel warnErrorLog /var/log/httpd/ssp_error_logCustomLog /var/log/httpd/ssp_access_log combined</VirtualHost>

self-service-password nginx配置文件

server {listen 80;root /var/www/html;index index.php index.html index.htm;# Make site accessible from http://localhost/server_name _;# Disable sendfile as per https://docs.vagrantup.com/v2/synced-folders/virtualbox.htmlsendfile off;gzip on;gzip_comp_level 6;gzip_min_length 1000;gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;gzip_vary on;gzip_proxied any;gzip_disable "MSIE [1-6]\.(?!.*SV1)";# Add stdout loggingerror_log /dev/stdout warn;access_log /dev/stdout main;# pass the PHP scripts to FastCGI server listening on socket#location ~ \.php {fastcgi_pass unix:/var/run/php-fpm.socket;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_index index.php;fastcgi_read_timeout 600;include fastcgi_params;}error_page 404 /404.html;location = /404.html {root /usr/share/nginx/html;internal;}# deny access to . files, for security#location ~ /\. {log_not_found off; deny all;}}

下面是根据Linux系统用户生成ldif文件创建Linux用户,如非Linux用户可直接跳过,导入base.ldif后可在图形界面创建用户,

groupadd ldapgroup1useradd -g ldapgroup1 ldapuser1passwd ldapuser1grep "ldapuser" /etc/passwd > /root/usersgrep "ldapgroup" /etc/group > /root/groups/usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif/usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif

导入账号信息到OpenLDAP数据库

ldapadd -x -w password -D cn=admin,dc=wmqe,dc=com -f /root/base.ldifldapadd -x -w password -D cn=admin,dc=wmqe,dc=com -f /root/users.ldifldapadd -x -w password -D cn=admin,dc=wmqe,dc=com -f /root/groups.ldif

添加用户到用户组的ldif文件

cat > add_user_to_groups.ldif << EOFdn: cn=ldapgroup1,ou=Group,dc=wmqe,dc=comchangetype: modifyadd: memberuidmemberuid: ldapuser1EOF

导入数据库

ldapadd -x -w Admin123 -D cn=admin,dc=wmqe,dc=com -f /root/add_user_to_groups.ldif

后记:

CSDN 搜索rockstics 查看完整内容

相关文章