如何在 LDAP 中设置正确的访问指令?
Posted
技术标签:
【中文标题】如何在 LDAP 中设置正确的访问指令?【英文标题】:How to set up proper access directive in LDAP? 【发布时间】:2021-12-27 18:00:19 【问题描述】:我是 LDAP 新手,对于一个学校项目,我可以访问我学校 LDAP 的一部分。我可以与组织单位中的用户绑定。
当我绑定时,我可以看到我的密码,而不是其他用户的任何其他密码(出于安全原因,这很正常)。
所以我已经导出了这个 LDAP 的 LDIF 并将其导入到我自己的 LDAP 服务器上以进行学习。
ldapsearch 命令运行良好,我检索了所有条目(密码除外,这很正常)。
所以现在,我尝试与任何用户绑定,我已经通过 Apache Directory Studio 在每个 LDAP 用户中添加了密码(inetorgPerson 在我通常搜索的 ou 下)。
但是,我无法绑定。
我猜是因为访问权限错误。
我知道我必须使用 ldapmodify 命令,并且我需要伪造一个指令,例如 access to * by * read(权限比 * 少,但一开始可能很好)。
但是,我找不到如何将此指令与 ldapmodify 一起使用。
我认为我必须创建一个 LDIF 文件来修改配置,但我不明白我应该更新哪个条目。
谁能给我提示以修改正确的条目?
谢谢
这里是我配置的 id 部分(域编辑为 domain.fr):
dn: olcDatabase=-1frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: -1frontend
olcAccess: 0to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
olcAccess: 1to dn.exact="" by * read
olcAccess: 2to dn.base="cn=Subschema" by * read
olcSizeLimit: 500
dn: olcDatabase=0config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: 0config
olcAccess: 0to * by * write
dn: olcDatabase=1mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: 1mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=domain,dc=fr
olcAccess: 0to attrs=userPassword by self write by anonymous auth by * none
olcAccess: 1to attrs=shadowLastChange by self write by * read
olcAccess: 2to * by * read
olcLastMod: TRUE
olcRoot
dn: cn=admin,dc=domain,dc=fr
olcRootPW: SSHAYNGbI0zpbUoVLZggbKeZqFIlVdq+0ZJP
olcDbCheckpoint: 512 30
olcDbIndex: objectClass eq
olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
olcDbMaxSize: 1073741824
search: 2
【问题讨论】:
你可以参考这个帖子LDAP configuration ACL on centos 7(检查你的后端,可以是hdb、bdm、mdb)。 谢谢,我去看看,根据我的配置,我的后端确实是mdb(刚刚在帖子中添加) 【参考方案1】:• 由于您已在新 AD 中导入 LDIF 文件,因此在您的 AD 环境中重新创建了原始 AD 中的所有用户。因此,您需要在您的环境中创建一个与原始 DNS 命名服务相同的 DNS 命名服务,因为您要添加条目的后缀应该存在于数据库中。此外,原始 LDAP 目录中使用的域管理员凭据将需要与导入的 LDIF 文件中的用户凭据绑定。
为此,您需要使用以下命令修改域管理员凭据。下面显示的脚本是有关如何修改域管理员凭据然后尝试使用这些凭据绑定用户的示例。 使用以下内容创建一个新的 LDIF 文件:-
‘ dn: uid=XYZ,ou=Domain Administrators,dc=example,dc=com
cn: XYZ
sn: XYZ
givenName: XYZ
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
ou: Accounting
ou: People
l: Santa Clara
uid: XYZ
mail: XYZ@example.com
roomnumber: 5484
userpassword: Pass@123 ’
然后,使用带有“—defaultAdd”选项的“ldapmodify”添加条目
‘ ldapmodify --hostname localhost --port 389 --bindDN "cn=Directory Manager" \
--bindPassword password --defaultAdd --filename /tmp/new.ldif ‘
使用这些命令,您将能够修改域管理员凭据,然后肯定能够在 LDAP 中绑定用户。只需将 ldif 文件名更改为您拥有的文件名,然后将 ldif 文件中的条目更改为原始目录中的实际条目。请在下面找到此链接以供参考:-
https://docs.oracle.com/cd/E22289_01/html/821-1273/adding-modifying-and-deleting-directory-data.html
【讨论】:
以上是关于如何在 LDAP 中设置正确的访问指令?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Angular 指令的 Link 函数中设置 CSS 样式