添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

ldap用户密码的修改可以使用ldappasswd命令,也可以使用万能的ldapmodify结合ldif文件来实现,但所修改的都是普通的用户,cn=admin的管理员用户的修改一般可以通过slappasswd来进行,由于本系列使用了openldap的docker镜像,此项功能已被封装,通过设定环境变量即可轻易实现。

修改密码的常用方式

  • ldappasswd命令
  • ldapmodify命令结合ldif文件
  • slappasswd命令

管理员密码的设定

管理员密码的设定可以通过slappasswd,由于本系列文章的示例使用了osixia的openldap镜像,cn=admin的密码设定,只需要对环境变量LDAP_ADMIN_PASSWORD进行设定即可。

Option介绍

ldapmodify常用Option

ldapmodify常用的Option的信息和用途整理如下:

Option 说明
-H ldapuri,格式为ldap://机器名或者IP:端口号,不能与-h和-p同时使用
-h LDAP服务器IP或者可解析的hostname,与-p可结合使用,不能与-H同时使用
-p LDAP服务器端口号,与-h可结合使用,不能与-H同时使用
-x 使用简单认证方式
-D 所绑定的服务器的DN
-w 绑定DN的密码,与-W二者选一
-W 不输入密码,会交互式的提示用户输入密码,与-w二者选一
-c 出错后忽略当前错误继续执行,缺省情况下遇到错误即终止
-n 模拟操作但并不实际执行,用于验证,常与-v一同使用进行问题定位
-v 显示详细信息
-d 显示debug信息,可设定级别
-e 设置客户端证书
-E 设置客户端私钥

ldappasswd常用Option

ldappasswd常用的Option的信息和用途整理如下:

Option 说明
-H ldapuri,格式为ldap://机器名或者IP:端口号,不能与-h和-p同时使用
-h LDAP服务器IP或者可解析的hostname,与-p可结合使用,不能与-H同时使用
-p LDAP服务器端口号,与-h可结合使用,不能与-H同时使用
-x 使用简单认证方式
-D 所绑定的服务器的DN
-w 绑定DN的密码,与-W二者选一
-W 不输入密码,会交互式的提示用户输入密码,与-w二者选一
-n 模拟操作但并不实际执行,用于验证,常与-v一同使用进行问题定位
-v 显示详细信息
-d 显示debug信息,可设定级别
-S 交互式进行密码的提示和输入以及Re-enter,与-s二者选一
-s 将指定内容设为密码,与-S二者选一
  • 使用ldif方式创建barbara用户的信息
liumiaocn:openldap liumiao$ cat barbara.ldif 
dn: cn=Barbara Jensen,dc=example,dc=org
changetype: add
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen
liumiaocn:openldap liumiao$ 
liumiaocn:openldap liumiao$ ldapadd -H ldap://192.168.31.242:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif
adding new entry "cn=Barbara Jensen,dc=example,dc=org"
liumiaocn:openldap liumiao$
liumiaocn:openldap liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w admin "uid=bjensen"
# extended LDIF
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: uid=bjensen
# requesting: ALL
# Barbara Jensen, example.org
dn: cn=Barbara Jensen,dc=example,dc=org
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
liumiaocn:openldap liumiao$

方式1: ldappasswd不指定密码

不指定密码的情况下,ldappasswd会给你生成一个密码。ldap的用户密码是通过userPassword来保存的,但是在使用ldif的时候没有这个字段,所以可以使用前文中提到的方式使用ldapmodify来进行添加,也可使用如下方式:

liumiaocn:openldap liumiao$ ldappasswd -x -h 192.168.31.242 -p 389 -D "cn=admin,dc=example,dc=org" -w admin  "cn=Barbara Jensen,dc=example,dc=org"
New password: VSzhfbwA
liumiaocn:openldap liumiao$

可以看到自动创建了一个密码串VSzhfbwA给指定的Barbara用户,然后来重新对此用户进行确认,可以看到加密后的userPassword信息已经出现在LDIF中了。

liumiaocn:openldap liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w admin "uid=bjensen"
# extended LDIF
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: uid=bjensen
# requesting: ALL
# Barbara Jensen, example.org
dn: cn=Barbara Jensen,dc=example,dc=org
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen
userPassword:: e1NTSEF9ZDYwU1NNMjJxb05vOTZ6OHg4b1JVMmxuRmpKNmR2SjE=
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
liumiaocn:openldap liumiao$

验证方法1: 使用java的JNDI

对修改的密码进行验证,可以使用前文中的Java的JNDI做的简单的代码进行验证:

liumiaocn:~ liumiao$ java LdapDemo 192.168.31.242 "cn=Barbara Jensen,dc=example,dc=org" "VSzhfbwA"
IPAdress: 192.168.31.242
Username: cn=Barbara Jensen,dc=example,dc=org
Password: VSzhfbwA
env setting
login verification begins...
login successfully.
liumiaocn:~ liumiao$

详细参看:

验证方法2: 使用ldapsearch等命令

考虑到权限,只查询自己的信息,看看是否能够正确返回,主要是用于验证-w的内容

liumiaocn:~ liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b "cn=Barbara Jensen,dc=example,dc=org" -D "cn=Barbara Jensen,dc=example,dc=org" -w VSzhfbwA "uid=bjensen"
# extended LDIF
# LDAPv3
# base <cn=Barbara Jensen,dc=example,dc=org> with scope subtree
# filter: uid=bjensen
# requesting: ALL
# Barbara Jensen, example.org
dn: cn=Barbara Jensen,dc=example,dc=org
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen
userPassword:: e1NTSEF9ZDYwU1NNMjJxb05vOTZ6OHg4b1JVMmxuRmpKNmR2SjE=
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
liumiaocn:~ liumiao$

因为错误的时候必然会提示:

liumiaocn:~ liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b "cn=Barbara Jensen,dc=example,dc=org" -D "cn=Barbara Jensen,dc=example,dc=org" -w VSzhfbwA1 "uid=bjensen"
ldap_bind: Invalid credentials (49)
liumiaocn:~ liumiao$

所以以此类推,很多命令和Option都可以进行利用,比如-n,各种扩展方式可自行展开。

ldappasswd使用-s指定修改密码

前文不指定密码的方式实际是使用admin对其他用户的密码进行重设,用户自己知道密码的情况下,进行更新则可以使用这种方式,比如:

liumiaocn:openldap liumiao$ ldappasswd -x -h 192.168.31.242 -p 389 -D "cn=Barbara Jensen,dc=example,dc=org" -w VSzhfbwA -s liumiao123
liumiaocn:openldap liumiao$ echo $?
liumiaocn:openldap liumiao$

这样Barbara就将自己的密码改成了liumiao123,结果确认发现,密码能够正常使用

liumiaocn:~ liumiao$ java LdapDemo 192.168.31.242 "cn=Barbara Jensen,dc=example,dc=org" "liumiao123"
IPAdress: 192.168.31.242
Username: cn=Barbara Jensen,dc=example,dc=org
Password: liumiao123
env setting
login verification begins...
login successfully.
liumiaocn:~ liumiao$ 

结合这两种方式,常见的密码重设问题基本都可以解决,比如在不知道密码的情况下,可以使用方式1先通过admin进行重新生成密码,再使用方式2重新设定指定密码,当然ldappasswd还有很多其他有用Option,使用方式可自行探索。

方式3: 使用ldapmodify来进行密码修改

ldapmodify作为一个万能命令,除了查询无法实现之外,增删改方面有广泛的应用,对于密码修改自然也非常方便,其实使用前文介绍的方法就可以,这里再次示例如下:

  • 准备修改密码的ldif文件,在文件中设定密码为babspw
liumiaocn:openldap liumiao$ cat modifybarbara.ldif 
dn: cn=Barbara Jensen,dc=example,dc=org
changetype: modify
replace: userPassword
userPassword: babspw
liumiaocn:openldap liumiao$
  • 使用ldapmodify修改密码
liumiaocn:openldap liumiao$ ldapmodify -a -H ldap://192.168.31.242:389 -D "cn=admin,dc=example,dc=org" -w admin -f modifybarbara.ldif 
modifying entry "cn=Barbara Jensen,dc=example,dc=org"
liumiaocn:openldap liumiao$ 
liumiaocn:~ liumiao$ java LdapDemo 192.168.31.242 "cn=Barbara Jensen,dc=example,dc=org" "babspw"
IPAdress: 192.168.31.242
Username: cn=Barbara Jensen,dc=example,dc=org
Password: babspw
env setting
login verification begins...
login successfully.
liumiaocn:~ liumiao$ 
                    ldap用户密码的修改可以使用ldappasswd命令,也可以使用万能的ldapmodify结合ldif文件来实现,但所修改的都是普通的用户,cn=admin的管理员用户的修改一般可以通过slappasswd来进行,由于本系列使用了openldap的docker镜像,此项功能已被封装,通过设定环境变量即可轻易实现。
cat > ppolicy-overlay.ldif <<EOF
dn: olcOverlay=ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=pp
提供基本身份验证的HTTP后端服务
可以从各种后端存储和管理用户和客户端:
新用户可以,并可以确认他们的电子邮件地址。 在注册过程中,可能希望新用户注册其密码以及其他身份验证因素:
 一次性密码(TOTP / HOTP)
 WebAuthn(Yubikey,Android设备)
 TLS证书
外部OAuth2 / OIDC提供商
现有用户可以通过向新电子邮件发送确认链接来更新其电子邮件。
 如果其密码或身份验证方案丢失或不可用,则现有用户可以重置其凭据。 凭证可以通过不同的因素重置:
 发送到用户电子邮件的链接
一次性使用恢复代码
有关注册,更新电子邮件或重置凭据功能的更多信息,请参见。
 基于插件体系结构,使添加或更新存储后端,身份验证方案或过程更加容易。
 允许无密码验证。
 通过插件架构可以为用户和客户端添加新的身份验证方案或后端存储。
 后端API服务器完全用C编写,并使用少量资源。
 它的插件体系结构使添加新模块或插件或修改具有
Aguilas是一个集中式注册系统,允许用户LDAP身份验证平台上(在某些情况下)使用MYSQL数据库存储和保存临时记录,以创建和管理其帐户。 它主要是用PHP编写的,并且在很大程度上取决于LDAP和MYSQL服务器的使用。 它具有以下功能:
 根据确定的LDAP属性创建用户帐户。
 重新发送确认电子邮件,以防其在垃圾邮件文件夹中丢失。
 如果用户知道,请更改用户密码。
 使用电子邮件作为确认来重置用户密码。
 提醒用户名。
 删除用户帐户。
 编辑用户配置文件(启用了ajax)。
 列出所有注册用户。
 在用户数据库中搜索术语。
这是一个非常快速的安装方法,有关详细信息,请参阅 。
 首先,您必须安装软件依赖项: 
aptitude install apache2 php5 php5-gd php5-ldap php5-mcrypt php5-mysql php5-su
				
LDAP 技术总结 第一章LDAP 有关技术介绍......................................................................................................... 3 第一节X.500 目录服务.......................................................................................................... 3 第二节什么是LDAP?......................................................................................................... 3 第三节Sun One Directory Server 目录服务.......................................................................... 4 第四节Windows Active Directory 活动目录........................................................................4 第五节LDAP 目录服务的优势..............................................................................................6 第六节LDAP 安全和访问控制............................................................................................10 第七节LDAP 目录树结构....................................................................................................11 第八节LDAP 复制............................................................................................................... 21 第二章LDAP 存储结构原理.......................................................................................................22 第一节树状组织...................................................................................................................23 第二节条目和条目认证.......................................................................................................23 第三节数据样式(schema)............................................................................................... 24 第四节类型分类(objectClass)..............................................................................................24 第五节过滤器和语法...........................................................................................................24 第六节树移植.......................................................................................................................25 第七节LDIF 交换文件......................................................................................................... 26 第八节JAVA 或CORBA 对象串行化存储......................................................................... 26 第三章LDAP 目录客户端访问工具............................................................................................27 第一节openldap 命令行....................................................................................................... 27 第二节ldapbrowser JAVA 开源LDAP 客户端工具............................................................29 第三节ldapadministrator.......................................................................................................29 第四节浏览器.......................................................................................................................29 第五节ldapexplorer(PHP 编写的LDAP 客户端工具)........................................................31 第六节ADAMRedistx86chs.exe...........................................................................................31 第七节Sun One Directory Console.......................................................................................31 第四章LDAP 目录服务器...........................................................................................................32 第一节Sun One Directory Server......................................................................................... 32 第二节openLdap Directory Server....................................................................................... 32 第三节Windows Active Directory Server.............................................................................32 第五章LDAP 程序访问技术详解................................................................................................32 第一节Sun 公司的JNDI 与各厂商实现的LDAP 函数库关系....................................... 32 1 Novell 函数库:.......................................................................................................... 32 2 Netscape 函数库:...................................................................................................... 33 3 Mozilla 函数库:........................................................................................................ 33 第二节访问LDAP 数据的API-JNDI...............................................................................33 1 J2SE 和JNDI 关系..................................................................................................... 33 2 JNDI API...................................................................................................................... 34 3 JNDI 类库下载............................................................................................................ 35 4 JNDI 对目录服务的一些基本操作........................................................................... 35 第三节访问LDAP 数据的API—JLDAP......................................................................... 144 第四节访问LDAP 数据的API-JDBCLDAP................................................................ 149 1 JDBCLDAP 的出现解决了许多人操作LDAP 的方便性,但是我们必须知道他的 优势和劣势:...............................................................................................................150 2 JDBCLDAP 包分析................................................................................................. 150 3 JDBCLDAP 操作目录数据库................................................................................ 151 第六章Sun One Dirctory Server 专题....................................................................................... 161 第一节安装.........................................................................................................................161 1 安装前准备...............................................................................................................161 2 更改服务器的主DNS 后缀..................................................................................... 162 3 运行安装文件中的setup.exe 文件......................................................................... 163 第二节卸载.........................................................................................................................176 第三节一些安装常见安装的问题及解决......................................................................... 177 1 安装时,要求录入完整的计算机名,我录入后,总是提示找不到请确认安装时, 已更改服务器的DNS 后缀......................................................................................... 177 2 安装过程中, 提示安装不成功, 后面的黑窗口提示 StringIndexOutOfBoundsException 异常。请确认你的目当服务器安装文件,没有放 在含有中文的文件路径中........................................................................................... 177 3 目录服务器安装后,我忘记了目录管理员DN 和口令。....................................177 第四节管理经验.................................................................................................................178 第五节Sun ONE 安装文件分析........................................................................................178 第六节使用目录服务经验................................................................................................. 179 第七章微软Active Directory Server 专题...............................................................................179 第一节JAVA 通过LDAP 修改windows Active Directory 域用户密码..........................179 1 注意:.......................................................................................................................179 2 具体步骤:...............................................................................................................180 第八章LDAP 技术资源............................................................................................................. 187 第一节介绍LDAP 的Roadmap & FAQ,........................................................................187 第二节免费ldap server,..................................................................................................... 187 第三节开源的ldap server.................................................................................................. 187 第四节Java 开发jndi........................................................................................................187 第五节Java 开发jldap 来开发.......................................................................................187 第六节java 开发JDBC-LDAP 来开发,.........................................................................188 第七节ldapguru...................................................................................................................188 第八节LDAPChina.com 论坛........................................................................................... 188 第九节LDAP Browser/Editor 客户端工具....................................................................... 188 第十节phpGeneral php 实现的客户端工具...................................................................... 188 第十一节LDAP Administrator 可以修改schema.............................................................189 第十二节LDAPNavigator 基于php..................................................................................189 第十三节Web2ldap.............................................................................................................189 第十四节ldap 做的user manage CA 赞助的...................................................................189 第十五节Softerra LDAP Administrator..............................................................................189
1、查看openldap管理员密码字段 ldapsearch -H ldapi:// -LLL -Q -Y EXTERNAL -b "cn=config" "(olcRootDN=*)" dn olcRootDN olcRootPW 从图中可以看到ldap管理员密码的加密字段:{SSHA}IvUoVHyR5K1zeyRFABKwIfDzF91dGNDd 2、设置openldap管理员新密码 slappasswd -s test123456 3、生成修改openlap管理员密码的ldif文件
了解目录服务 目录服务是由目录数据库和一套能够访问和处理数据库信息的协议组成的服务协议,用于集中的管理主机帐号密码,员工名字等数据,大大的提升了管理工作效率。轻量级目录访问协议LDAP(Lightweight Directory Access Protocol)是在目录访问协议X.500的基础上研发的,主要的优势是: X.500目录协议功能非常臃肿,消耗大量资源,无法做到快速查询且不支持TCP/I...
ldapmodify命令可以对GBase 8d数据库中的条目进行修改操作,他可以理解为编辑器,也可以通过changeType属性的值delete关键字来实现条目的删除。 功能:使用ldapmodify修改条目。可以使用 changetype: modify 关键字在现有条目中添加、替换或删除属性及属性值。 使用格式: ldapmodify [-a] [-c] [-C] [-r] [-n] [-v] [-k] [-K] [-M[M]] [-D binddn] [-...
微软官方给出的ldap修改密码方案:         密码存储在 Active Directory 用户中的对象的unicodePwd属性。可以在有限的情况下,写入此属性,但无法读取。该特性只能修改 ;不能将添加的对象的创建日期或通过搜索查询。若要修改此属性  ,则客户端必须 128 位安全套接字层 (SSL) 连接到服务器 。为此连接成为可能,服务器必须拥有一个 128 位的 RSA
<property> <name>hive.server2.authentication.ldap.url</name> <value>ldap://ldapserver:389</value> </property> <property> <name>hive.server2.authentication.ldap.baseDN</name> <value>dc=mydomain,dc=com</value> </property> <property> <name>hive.server2.authentication.ldap.userDNPattern</name> <value>uid={0},ou=people,dc=mydomain,dc=com</value> </property> <property> <name>hive.server2.authentication.ldap.groupDNPattern</name> <value>cn={0},ou=groups,dc=mydomain,dc=com</value> </property> <property> <name>hive.server2.authentication.ldap.groupMembershipKey</name> <value>memberUid</value> </property> 其中,ldap.server是您的LDAP服务器的名称或IP地址,baseDN是LDAP根目录的名称,userDNPattern和groupDNPattern是用户和组的DN模式,groupMembershipKey是指向组成员的属性名称。 3. 保存并关闭文件。 4. 在Hive服务器上重新启动Hive服务,以使更改生效。 现在,您可以使用LDAP用户密码登录Atlas Hive了。
一个业余写代码的: 大佬,遇到过吗? Failed to execute goal com.zenjava:javafx-maven-plugin:8.8.3:jar (jar) on project XXX: Execution jar of goal com.zenjava:javafx-maven-plugin:8.8.3:jar failed: Plugin com.zenjava:javafx-maven-plugin:8.8.3 or one of it s dependencies could not be resolved: The following artifacts could not be resolved: javafx-packager:javafx-packager:jar:1.8.0_20: Could not find artifact javafx-packager:javafx-packager:jar:1.8.0_20 at specified path C:\Program Fil es\Eclipse Foundation\jdk-8.0.302.8-hotspot\jre/../lib/ant-javafx.jar -> [Help 1]