我需要练习LDAP所以我认为安装 LDAP 服务器只是为了做一些测试是个好主意。
对于客户端,我使用的是 LInux Mint 发行版,并且我已经安装了我在中找到的所有软件包这个链接。我的公司提供 Active Directory 服务,但显然我的用户没有以下命令所需的管理员权限:
sudo realm join domain.tld -U domain_administrator --verbose
所以我就想安装一个LDAP服务器来做测试。
有人知道适合我用途的 LDAP 服务器吗?
谢谢。
在这个链接我找到了在 Linux Mint 上安装 OpenLDAP Server 和 OpenLDAP Client 的教程。
一如既往,可以通过以下方式安装 OpenLDAP 服务器apt
:
sudo apt update
sudo apt -y install slapd ldap-utils
之后必须配置服务器并链接给出了一些细节。显然,本文只是介绍,但足以开始学习 LDAP 服务器。
答案1
除了普通用户帐户之外,您不需要任何其他东西即可通过 LDAP 查询 Active Directory。 (有些字段将无法访问,但大多数字段都是相对公开的。)
authacct='[email protected]' # Authentication (your AD account)
ldapuri='ldap://ad.contoso.com' # Address of any AD server
searchbase='dc=contoso,dc=com' # Starting point for searches
what='frankfalse' # What text to search for
# LDAP query filter
filter="(&(objectclass=user)(|(cn=$what*)(userPrincipalName=$what*)(mail=$what*)(proxyAddresses=smtp:$what*)(sn=$what*)(sAMAccountName=$what*)(physicalDeliveryOfficeName=*$what*)(c=$what)))"
# Fields to return
fields=(sAMAccountName cn mail c targetAddress description title)
# Perform the search
ldapsearch -W -L -x -H "$ldapuri" -D "$authacct" -b "$searchbase" -s sub "$filter" "${fields[@]}"
使用普通的非特权访问无法区分已禁用的用户帐户和活动用户帐户。如果您拥有具有适当特权的帐户,则可以立即将其添加到过滤器中,以(objectclass=user)
仅选择活动帐户:
(!(userAccountControl:1.2.840.113556.1.4.803:=2))
字符串$filter
直接简单地插入$what
值。不要盲目接受$what
来自不可信用户的信息。