(抱歉,如果我弄错了术语,我对 LDAP 还很陌生)
我正在设置具有以下结构的本地 LDAP 服务器(Apache Directory Server):
o={my organization name} [objectClass=organization]
ou=groups [objectClass=organizationalUnit]
cn=someGroup [objectClass=groupOfUniqueNames]
cn=otherGroup [objectClass=groupOfUniqueNames]
...
ou=users [objectClass=organizationalUnit]
cn=user1 [objectClass=inetOrgPerson]
cn=user2 [objectClass=inetOrgPerson]
cn=user3 [objectClass=inetOrgPerson]
...
Run Code Online (Sandbox Code Playgroud)
一切都很好。
现在我有一个问题。我有另一台运行 Atlassian Crowd 的服务器需要访问此 LDAP,我想为该服务提供自己的 LDAP 授权条目,以划分访问权限。但这不是用户,而是服务。
什么 objectClass 用于服务标识?
(作为 LDAP 的新手,您如何发现 groupOfUniqueNames 用于组,inetOrgPerson 用于用户条目?这似乎是常态。)
大约 1 年以来,我们一直openldap在ubuntu服务器上使用10.04LTS来验证大约 20 个 IT 用户,并且一切运行良好(LDAP 服务器上的操作基本上仅限于使用apache directory studio创建/删除用户)。
最近(6 个月前)我们还开始实施openldap(openldap-2.4.21/debian) 作为我们网站的外部身份验证系统,该系统正在从外部 CMS 迁移到我们正在使用Drupal CMS. 我们有一个 45,000 用户的数据库,但事情进展得并不顺利。我们遇到的问题是:
-备份还原后 ldap 崩溃,需要恢复。
- ldap 恢复工具在某些情况下无法恢复 ldap 数据库
-slapd 消耗 100% CPU 而网站上没有身份验证活动。
由于内部缺乏资源和知识,到目前为止我们所做的只是找到保持 LDAP 运行的方法,而没有真正调查这些问题中的任何一个(用于monit在崩溃时重新启动它,db_recover在需要时恢复数据库,并slapcat重新创建db_recover失败时从头开始创建数据库)。
最近,我们进行了一轮面试,聘请了一名高级基础设施工程师来协助我们处理各种基础设施。我们遇到的问题。几位候选人确认他们要么已经或听说过openldap大型生产环境中的问题,并且从未设法提出一个稳定的独立openldap服务器,而是不得不提出冗余部署(复制、负载平衡、自动恢复/重启例程) ) 以保持 LDAP 运行。一些候选人甚至说这openldap不适合生产环境,相反,使用替代品Novel eDirectory是必要的。
问:如果您有在拥有数千个用户的生产环境中处理 ldap 的经验,您是否有事实可以分享,这些事实往往证明openldap这种设置确实不稳定,并且确实建议使用其他 ldap 服务器?
我做了一些谷歌搜索,到处都说 Windows Home 不能加入域或 LDAP 或不推荐。
但是有办法吗?我们不需要 Active Directory,带 Z 驱动器的简单 LDAP 就足够了?为什么我们有很多 Windows Home 7 用户,并且想将他们添加到我们的 LDAP 中?
我需要创建一个可以在 Active Directory 上查询用户的脚本。
假设:
我的所有用户都连接到名为“engineering.software.companyX.com”的服务器。
我们所有的 PC 都有上述名称的域帐户。
我使用什么 LDAP URI?
我为一个小型组织管理几台服务器,该组织为其成员提供类似 ISP 的服务(虚拟主机、多个域上的邮件地址和关联的 IMAP 帐户、Jabber 帐户),我想将所有帐户数据集中在 LDAP 中。我是 LDAP 的新手,现在我需要设计和组织 LDAP 目录布局。
我正在努力解决的最大问题是如何将用户映射到各种帐户,例如,单个用户目前拥有多个 IMAP 和 Jabber 帐户,这些帐户与各个域上的各种地址相关联,并且每个帐户都有不同的密码,我需要保留它。
那么我将如何组织 LDAP 目录布局?
用户和各种帐户是否应该在不同的树中,然后通过一个公共 uid 链接,即 ou=people,dc=example,dc=net 与描述用户的 inetOrgPersons 然后为帐户分离树,例如 ou=imapAccounts,dc=例如,dc=net, ou=jabberAccounts,dc=example,dc=net 等具有自定义模式?或者有没有更好的方法,因为这看起来太像使用关系数据库的解决方案?
任何对这里有用的资源/书籍/现实世界示例的建议?我见过的大多数资源似乎都假设一个人只有一个邮件/jabber 帐户等,并且想要为此使用一个密码。我不敢相信 ISP 允许他们的客户拥有多个帐户,例如为了允许他们将私人邮件和工作邮件分开,或者鼓励不同服务使用不同的密码,这样保存的 Jabber 密码就不会被泄露,我不敢相信这是罕见的导致该客户的所有其他服务受到损害等。
我将尝试更具体地说明我的用例并解释我当前的数据模型:
有一些独特的用户是我需要一些联系数据的人,并且在虚拟主机框上有一个(单个)shell 帐户。这些唯一用户中的每一个都可能拥有多个 IMAP 和 Jabber 帐户。
回答设计问题:
我ldapserver在严格的防火墙后面有一个 LDAP 服务器 ( )的设置,以及在appserver防火墙外的服务器 ( )上运行的 web 应用程序,需要使用该 LDAP 服务器进行身份验证。
我已经成功地使用了第三台服务器 ( tunnelserver) 作为中间服务器appserver,ldapserver通过在 上运行以下命令来设置 SSH 隧道tunnelserver:
ssh username@appserver -R 28420:ldapserver:389
Run Code Online (Sandbox Code Playgroud)
唯一的问题是我偶尔会遇到一个破损的管道,并丢失了 SSH 隧道。
一个解决方案似乎是autossh,但我有限的 SSH 知识几乎无法使隧道正常工作,而且似乎不足以正确重新指定autossh.
有小费吗?
我这里有一些边缘情况。我所在的机构有一个 RHEL 服务器,学生可以在其中登录并完成工作。帐户保存在 LDAP 中,服务器使用 PAM 和 LDAP 进行身份验证。在学年结束时,我需要锁定此服务器上的学生帐户 - 即保持它们完好无损,但阻止该用户登录。我已经尝试过passwd -l和usermod -L,但在这两种情况下,用户仍然可以登录。
有没有办法锁定可以与 PAM LDAP 一起使用的帐户?
例如,用户名可能是“ekg7d9a”,但用户的真实姓名是“Charlie Hanes”,电子邮件是“chanes@example.com”。
使用与登录名和电子邮件地址无关的用户名与让“查理汉斯”使用“chanes”作为登录名的至少同样常见的方法的主要原因是什么?
我正在尝试将我的文件服务器 (FreeNAS 8.0.1 / 8.2-RELEASE-p7) 与我的 Mac OS X 10.7 Lion 目录服务器的开放目录连接...我知道 Mac OS X 提供了 LDAP 服务,其他服务器可以通过该服务进行身份验证反对,但我很难让 FreeNAS 对 Mac OS X Open Directory 进行身份验证。
如何将 FreeNAS 文件服务器连接到 Mac OS X 目录服务器?
我要将 check_mk 的 Multisite 与 OpenLDAP集成。配置 LDAP 连接器后,打开“用户和联系人”页面时出现以下错误:
Error executing sync hook
The "Authentication Expiration" attribute (pwdchangedtime) could not
be fetchedfrom the LDAP server for user {u'cn': [u'noreply']}.
Run Code Online (Sandbox Code Playgroud)
以下是我为实现密码策略覆盖所做的所有步骤:
为 OpenLDAP 服务器安装覆盖模块:
yum install openldap-servers-overlays
Run Code Online (Sandbox Code Playgroud)
将以下行添加到 /etc/openldap/slapd.conf:
include /etc/openldap/schema/ppolicy.schema
modulepath /usr/lib64/openldap
moduleload ppolicy.la
Run Code Online (Sandbox Code Playgroud)
然后我重新启动 OpenLDAP 并尝试更改密码。我确定它已成功更改,但pwdChangedTime在运行时看不到该属性ldapsearch:
$ ldapsearch -x -D "cn=Manager,dc=domain,dc=com" -y .passwd.cnf "cn=noreply"
dn: cn=noreply,ou=it,dc=domain,dc=com
cn: noreply
mail: noreply at domain.com
maildrop: noreply at domain.com
sn: No
uid: noreply
objectClass: inetOrgPerson
objectClass: …Run Code Online (Sandbox Code Playgroud)