我已经通过 ldap 设置了 linux 客户端身份验证,它可以工作。我想通过添加或删除帐户的不同 OU 来控制用户对多个服务的访问。例如,如果允许用户登录 linux 机器,则必须包含“linux”。如果允许此用户访问 redmine,则它也必须包含“redmine”。
问题是,/etc/ldap.conf 中的 pam_filter 参数被忽略了。当我设置它
pam_filter ou=linux
Run Code Online (Sandbox Code Playgroud)
LDAP 服务器的搜索字符串不包含此过滤器:
openldap slapd[5374]: conn=1857 op=1 SRCH base="ou=people,dc=rwth-cbmb,dc=de" scope=2 deref=0 filter="(objectClass=posixAccount)"
正如我所说,我一直将它与 redmine(票务跟踪系统)一起使用,我也设置了 ldap 过滤器并且它工作正常。我在服务器上收到以下搜索请求:
openldap slapd[5374]: conn=1863 op=1 SRCH base="ou=people,dc=rwth-cbmb,dc=de" scope=2 deref=0 filter="(&(objectClass=*)(uid=alex) )(ou=redmine))"
我有以下软件包版本:
ldap-auth-客户端 0.5.3
ldap-auth-config 0.5.3
ldap-utils 2.4.28-1.1ubuntu4.2
libldap-2.4-2 2.4.28-1.1ubuntu4.2
libnss-ldap 264-2.2ubuntu2
libpam-ldap 184-8.5ubuntu2
客户端 ubuntu 12.04,服务器 ubuntu 服务器 10.04。
我们有 50 台 RH-5 机器和 70 台 RH-6 机器。我正在考虑决定我们应该为 LDAP 使用什么:
SSSD 可用于两个版本(RHEL5 - sssd 1.5 和 RHEL6 - sssd 1.9+)
最后一个选项意味着 RHEL5 机器将运行 sssd 1.5。
我更喜欢尽可能具有相同软件和配置的环境,除非人们说 sssd 对于 RH-6 来说确实更好,而 nscd/nslcd 对于 RH-5 来说确实更好。
最好的选择是什么?
我正在尝试在 Server 2008 R2 上使用带有 ssl 的 ldap。一切就绪,我可以使用 ldp.exedomain.example.org通过 ssl 复选框连接到端口 636。这是在本地服务器本身上。
但是 - 我无法使用 ssl 和端口 636 使用 ldapsearch 进行连接。使用 ldapsearch 没有 ssl 和端口 389 工作正常。
有任何想法吗?我的客户需要安装证书吗?我主要只是想加密 ldap 连接。谢谢你的帮助!
* 编辑 *
有效的命令:
ldapsearch -x -b "dc=XX,dc=example,dc=org" -D "user@example.org" -H ldap://XX.example.org -W '(&(proxyAddresses=smtp*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'
Run Code Online (Sandbox Code Playgroud)
不起作用的命令:
ldapsearch -x -b "dc=XX,dc=example,dc=org" -D "user@example.org" -H ldaps://XX.example.org:636 -W '(&(proxyAddresses=smtp*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'
Run Code Online (Sandbox Code Playgroud)
我尝试了 -h 的变体并使用 -p 来指定端口。
我将如何将证书从服务器 2008 安装到客户端?
是否有库、程序或简单的正则表达式来检查输入中指定的 DN 是否格式正确?
示例:输入:经理,ou=company,dc=net ---> 输出:格式不正确
输入:cn=manager, ou=company, dc=net ---> 输出:格式良好
我在 Windows Server 2012 上运行了 Apache 2.4。
我已经让 mod_authnz_ldap 工作,除非用户输入空白用户名。这会导致 500 内部服务器错误。
这是 httpd.conf 中“员工”区域的条目...
<Location "/staff">
AuthType Basic
AuthName "Staff Area"
LDAPReferrals Off
AuthBasicProvider ldap
AuthUserFile /dev/null
AuthLDAPBindDN Administrator@school.com.au
AuthLDAPBindPassword MyPassword
AuthLDAPURL "ldap://server-dc1:389/ou=DomainUsers,dc=school,dc=com,dc=au?sAMAccountName?sub"
Require ldap-group cn=staff,ou=staff,ou=DomainUsers,dc=school,dc=com,dc=au
</Location>
Run Code Online (Sandbox Code Playgroud)
有什么明显的我遗漏了吗?还有其他人使用 mod_authnz_ldap 吗?您的服务器不喜欢空白用户名吗?
我正在尝试配置在 Centos 6.5 上运行的 SASL,以允许对企业 Active Directory 服务器进行身份验证。最终目标是验证对该服务器上运行的某些 subversion 存储库的访问权限,但在此阶段,我只是尝试让 saslauthd 进行身份验证,并使用 testsaslauthd 对其进行测试。
每次身份验证都失败,日志中显示以下内容:
saslauthd[20843] :do_auth : auth failure: [user=MYUSER] [service=svn] [realm=MYREALM] [mech=ldap] [reason=Unknown]
saslauthd[20843] :do_request : response: NO
Run Code Online (Sandbox Code Playgroud)
这是我的 /etc/saslauthd.conf:
ldap_auth_method: bind
ldap_servers: ldaps://ldap.ad.mycompany.com:3269/
ldap_bind_dn: MYBINDDN
ldap_password: xxxxxxxxxx
ldap_search_base: DC=mycompany,DC=xx
ldap_filter: (&(cn=%u)(objectClass=person))
ldap_referrals: yes
log_level: 10
Run Code Online (Sandbox Code Playgroud)
请注意,我知道 ldap 服务器 URI、绑定 DN、密码、搜索库和过滤器是正确的,因为我有一个 perl 脚本,它使用这些来为网站执行身份验证,并且它工作正常。perl 脚本使用 Net::LDAP,绑定到 AD,使用搜索库和过滤器搜索用户,然后尝试使用用户的 DN 和密码进行绑定。据我了解,这正是 SASL 应该按照我的配置方式尝试做的事情。
我的第一个观察结果是,尽管将 log_level 设置为 10,但我只收到一行告诉我它因未知原因失败。我正在使用 -d(调试)选项从 shell 启动 saslauthd。我还能做些什么来获得更多的调试输出?
有什么方法可以记录 LDAP 交互?
最后,有人能看出我的配置有什么问题吗?也许一些 AD 怪癖需要在 SASL 配置中进行特殊设置?
我正在编写一些 ldap 自动化脚本,但遇到了轻微的挂断。基本上,我想在尝试添加之前检查添加到条目的属性是否确实存在于给定的 objectClass 中。
到目前为止,我对此的最佳想法只是在属性的架构定义文件上运行正则表达式,但这并不能说明在配置初始化后正在编辑的架构文件。
第二个想法是在无法添加属性时捕获抛出的错误,但这似乎效率较低,因为我的下一步是将属性添加到架构并重建配置。
似乎应该有一个简单的 ldapsearch 命令来执行此操作,但我无法弄清楚语法。
到目前为止,我已经尝试过:
ldapsearch -x -b 'dc=MY_DOMAIN,dc=com' '(objectclass=mySCHEMA)'
Run Code Online (Sandbox Code Playgroud)
但这只是列出了任何具有 mySCHEMA 对象类的 ldap 条目。
感谢您的帮助,干杯!
我需要实现一个可以从公司外部访问的公司网站。要求用户能够使用与访问公司网络 (Active Directory) 相同的凭据登录。我最初想使用 ADFS,但似乎无法访问有关其他用户的信息。我需要能够列出其他用户,获取他们所属的组等。我也可能需要修改有关服务器中用户的信息。
我没有任何与 Active Directory 相关的经验。直接将 LDAP 与自定义身份验证一起使用是更好的选择吗?有什么建议或更正吗?
我有一个针对 AD 服务器进行身份验证的 RHEL 6.5,该端工作正常。
该机器还运行使用 PAM 模块进行身份验证的 Web 应用程序。
我复制了登录名来制作一个供 web 应用程序使用的 pam 模块。(rstudio-server) 并且登录工作正常。
但是,如果用户之前未登录,则 pam_oddjob_mkhomedir 不会通过 pam_oddjob_mkhomedir 创建他们的主目录,如果我 SU 到该用户,则会立即创建主目录。
我已将 selinux 设置为宽松,直到我对此进行排序,并且我正在尝试 pam_mkhomedir.so 和 pam_oddjob_mkhomedir.so(两者都已就位并且oddjob 服务正在运行)
我认为没有问题..它不是开始会话,它只是从 PAM 进行身份验证,所以我尝试将调用 mkhomedir 的行放入身份验证中,但它不起作用。
使用 pamtester 进行测试:
# pamtester rstudio 00064742 "authenticate"
Password:
pamtester: successfully authenticated
# pamtester rstudio 00064742 "open_session"
Creating home directory for 00064742.
pamtester: sucessfully opened a session
Run Code Online (Sandbox Code Playgroud)
如您所见,如果打开了一个会话,则会创建主目录,但不会在 auth 下。
这是相关的 pam 文件。
pam.d]# cat rstudio
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth required …Run Code Online (Sandbox Code Playgroud) 我正在尝试针对 sasl+ldap 对 subversion 用户进行身份验证。关于这个问题的其他问题似乎与早期版本的 subversion 或 sasldb 身份验证有关。
lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.1 (jessie)
Release: 8.1
Codename: jessie
svnserve --version
svnserve, version 1.8.10 (r1615264)
Cyrus SASL authentication is available.
saslauthd -v
saslauthd 2.1.26
authentication mechanisms: sasldb getpwent kerberos5 pam rimap shadow ldap
Run Code Online (Sandbox Code Playgroud)
sasl+LDAP 部分似乎已正确配置:
testsaslauthd -u user -p password -r realm
0: OK "Success."
Run Code Online (Sandbox Code Playgroud)
使用错误的凭据对其进行测试会出现错误:
testsaslauthd -u wronguser -p wrongpassword -r wrongrealm
0: NO "authentication failed"
Run Code Online (Sandbox Code Playgroud)
它在 auth.log 中显示错误:
Sep …Run Code Online (Sandbox Code Playgroud)