我想说服我的老板我们应该使用 git 进行版本控制。他说,它绝对必须通过我们的中央 LDAP 服务器对用户进行身份验证。
我查看了各种解决方案(gitweb、gitorious ...),并没有真正找到关于它们是否支持 LDAP 身份验证的明确答案。
我能找到一些信息的唯一解决方案是 Apache+mod_ldap 设置。但这意味着在 LDAP 上进行身份验证的用户不一定与实际的 git 用户相同,对吗?(并不是说这是一个大问题,而是一些会让我烦恼的事情。)
那么,通过 LDAP 对 git 用户进行身份验证的最佳方法是什么?
使用命令行 (Linux) 或 LDIF,我可以找到许多创建新组并定义其成员的示例,但没有这样的示例:
如何将用户添加到现有组?
假设这个人也已经存在。
例如将用户添加uid=fred,ou=people,dc=example,dc=com到组cn=vipb,ou=groups,dc=example,dc=com。
似乎每家在某个时候使用 LDAP 的商店都必须拼凑一些东西,让用户在不打扰 IT 人员的情况下重置密码。工作流程几乎总是这样:
在后端,这对应于:
对?那么,有人写过他们分享的其中一篇吗?我宁愿使用一个比每个人似乎都做的 10 分钟工作更深思熟虑的工作。
我对 Sourceforge、Freshmeat 等进行了快速搜索,但没有找到任何未被遗弃的东西。
我希望一些 PAM/LDAP 专家可以在这里帮助我。我最近在 Ubuntu Server 上设置了一个 LDAP 目录来保存我的客户(用于基于 Web 的系统)和员工(需要通过 SSH 登录)的帐户。
LDAP 身份验证工作正常。但是,我无法使帐户限制起作用:员工帐户将在2001和之间具有 ID ,2999并且将成为ssh-users组的成员以允许他们登录到服务器。
有问题的限制在/etc/ldap.conf、 和pam_min_uid、pam_max_uid和pam_groupdn。
pam_groupdn包含我ssh-users组的完整 DN 。 pam_min_uid=2000和pam_max_uid= 2999。
现在,我通过添加以下内容设法让它们工作:
account [success=1 default=ignore] pam_ldap.so
Run Code Online (Sandbox Code Playgroud)
中的pam_unix.so线以上/etc/pam.d/common-account。但是,本地 Unix 帐户无法登录:SSH 服务器在尝试后立即终止连接。
我已经在上面的文件中设置了pam_ldap.so模块sufficient,但是无效的用户收到一条消息,说他们无法登录,但无论如何它都会登录。
那么,如何为 LDAP 用户设置这些帐户限制,同时仍然允许 UNIX 用户登录?
你可能猜到我是 PAM 的新手,尽管我已经设法让“自动创建主目录”模块正常工作:-)
非常感谢,安迪
我们的企业 LDAP 目录位于 Snow Leopard Server Open Directory 设置中。我正在尝试使用该ldapsearch工具导出 .ldif 文件以导入另一个外部 LDAP 服务器以进行外部身份验证;基本上是试图能够在内部和外部使用相同的凭据。
我已经开始ldapsearch工作并为我提供了“用户”OU 中所有内容的内容和属性,甚至过滤到仅我需要的属性:
ldapsearch -xLLL -H ldap://server.domain.net /
-b "cn=users,dc=server,dc=domain,dc=net" objectClass /
uid uidNumber cn userPassword > directorycontents.ldif
Run Code Online (Sandbox Code Playgroud)
这为我提供了可以导入到远程 OpenLDAP 服务器的用户和属性列表。
dn: uid=username1,cn=users,dc=server,dc=domain,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
uidNumber: 1000
uid: username1
userPassword:: (hashedpassword)
cn: username1
Run Code Online (Sandbox Code Playgroud)
但是,当我在 OD“组”而不是“容器”上尝试相同的查询时,结果是这样的:
dn: cn=groupname,cn=groups,dc=server,dc=domain,dc=net
objectClass: posixGroup
objectClass: apple-group
objectClass: extensibleObject
objectClass: top
gidNumber: 1032
cn: groupname
memberUid: username1
memberUid: username2
memberUid: username3
Run Code Online (Sandbox Code Playgroud)
我真正想要的是根据组成员身份过滤的顶部示例中的用户列表,但看起来成员资格是从组方面设置的,而不是用户帐户方面。必须有一种方法可以过滤掉它并只导出我需要的东西,对吗?
我有一些使用 Windows Active Directory 身份验证的 linux 机器,效果很好(Samba + Winbind)。
我现在想做的是只允许某些人或某些组使用 Active Directory 凭据登录。目前任何拥有有效 AD 帐户的人都可以登录。我想将其限制为仅几个组。这是可行的吗?
这已经困扰我一段时间了。
我们都知道 Active Directory 是一个 LDAP 数据库。
我们还知道,Windows DNS 服务在域控制器上运行时,可以将其数据存储在 AD 中而不是纯文本区域文件中,从而利用 AD 自动复制并消除对主/辅助 DNS 服务器的需要。
问题:DNS 数据实际存储在 Active Directory 中的位置和方式?
是否可以使用 ADSIEdit 等 LDAP 工具访问它们?
任何 DNS 条目是实际的 LDAP 对象吗?
对象中的属性?
完全不同的东西?
我正在我的个人 VPS 上设置 LDAP 身份验证,Ubuntu 有两个用于相同目的的软件包:libpam-ldap和libpam-ldapd. 我应该使用哪个?
我正在通过 slapd.conf 搜索一个 LDAP 目录,该目录的结果数量比当前设置的 sizelimit 多得多,500,对于所有意图和目的都无法更改)
我的想法是继续运行 ldapsearch,但每次都从不同的偏移量(501、1001 等)运行,直到获得所有结果。
我已经看过ldapsearch的手册页,看来这是使用 -E 选项为您处理的:
-E [!]<ext>[=<extparam>] search extensions (! indicates criticality)
[!]domainScope (domain scope)
[!]mv=<filter> (matched values filter)
[!]pr=<size>[/prompt|noprompt] (paged results/prompt)
[!]subentries[=true|false] (subentries)
[!]sync=ro[/<cookie>] (LDAP Sync refreshOnly)
rp[/<cookie>][/<slimit>] (LDAP Sync refreshAndPersist)
Run Code Online (Sandbox Code Playgroud)
所以我试过:
ldapsearch -h $HOST -p $PORT -x -L -b "$BASE" '*' '+' -E pr=$SIZE
但是,当结果(例如,即使是大小为 50 的分页结果)达到 500 时,我也会收到与结果未分页相同的错误:
Size limit exceeded (4)
我在手册页中看到 virtuallistview 有另一个选项,但无法找到它的示例,而且我认为我的 ldapsearch 版本没有这个选项。
此处的目标是使用 ldapsearch 和 -L 选项创建备份,以创建适合还原数据库的 ldif 文件。
一些谷歌搜索出现了我遇到的同样问题,但没有一个适用的解决方案..
我必须将organizationalunit这样的添加到新安装的 OpenLDAP(在 Ubuntu 12.04 上):
dn: ou=MYREGION, ou=MYAPP, ou=GROUPS, o=myorganization, c=fr
ou: MYREGION
objectClass: top
objectClass: organizationalunit
Run Code Online (Sandbox Code Playgroud)
因此,由于它是一个新的 LDAP,我想我必须先添加fr国家/地区,然后创建该文件:
dn: c=fr
c: fr
objectClass: top
objectClass: country
Run Code Online (Sandbox Code Playgroud)
现在我尝试使用该命令导入它(我没有该服务器的域):
ldapadd -x -D cn=admin,dc=nodomain -W -f country_fr.ldif
Run Code Online (Sandbox Code Playgroud)
但 OpenLDAP 拒绝该命令:
adding new entry "c=fr"
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge
Run Code Online (Sandbox Code Playgroud)
任何提示?