标签: ldap

有没有好的轻量级 LDAP 查询工具?

作为开发人员,我们有时需要查询 LDAP。你知道这个任务的有用工具吗?

编辑:我的意思不是在代码中,我的意思是实用程序/工具(命令行或 gui,主要是 gui)只是为了查看/确认数据,或者如果可能的话改变......

ldap query

23
推荐指数
6
解决办法
7万
查看次数

了解 PAM 和 NSS

在过去的几天里,我设置了一些带有 LDAP 身份验证的 Linux 系统,一切正常,但是经过大量研究,我仍然无法真正理解 NSS 和 PAM。

引用:

NSS 允许管理员指定将存储和搜索身份验证文件、主机名和其他信息的源列表

PAM 是一组库,为应用程序和底层操作系统提供可配置的身份验证平台

我不明白的是 PAM 和 NSS 如何一起工作和交互。在这本书的架构是解释得很好:我PAM配置为使用pam_ldapLDAP的帐户和pam_unix本地帐户,然后我配置nsswitch.conf来从本地文件和LDAP信息。

如果我理解正确,LDAP 使用了两次:首先pam_ldap由 NSS使用,然后由 NSS 调用,它本身从pam_unix. 那正确吗?LDAP 真的使用了两次吗?但是为什么我需要同时配置 NSS 和 PAM?我的解释是 PAM 执行与 NSS 不同的任务,它被其他程序使用。但是,正如我在本页中所读到的那样,应该可以仅使用 NSS 或仅使用 PAM 。

所以我进行了一些试验,我首先尝试从nsswitch.conf(并且身份验证停止工作,好像只有 pam_ldap 不足以完成这项工作)中删除 LDAP 。然后我在 NSS 中重新启用了 LDAP,并从 PAM 配置中删除了它(这次一切正常,好像pam_ldap没用一样,而且 NSS 足以验证用户的身份)。

有没有人可以帮我澄清一下?提前谢谢了。

更新

我现在刚刚尝试了一些东西。我再次删除了所有pam_ldappam 配置字段中的所有条目,并且还shadow: ldap从 …

ldap authentication pam nss

23
推荐指数
1
解决办法
2万
查看次数

为开发测试设置 LDAP 的最简单方法

我是与 LDAP 集成以进行身份​​验证的产品的开发人员。我需要设置一个可以测试的目录。

我不是 LDAP 专家。为了帮助缓解学习曲线,拥有一个真实世界的示例目录会很有用。

是否有任何资源可以帮助我设置演示目录,随时可用?例如,VMware 设备?

ldap

22
推荐指数
2
解决办法
4万
查看次数

枚举 Active Directory 中的用户组需要哪些权限

我有一个 .net Web 应用程序,它需要获取用户在 Active Directory 中所属的组。

为此,我在用户记录上使用 memberOf 属性。

我需要知道在所有用户记录上读取此属性所需的权限。

目前,我在尝试读取此属性时得到不一致的结果。例如,我在同一 OU 路径中有一个由 30 个用户组成的用户组。使用我自己的凭据查询 AD - 我可以读取某些用户的 memberOf 属性,但不能读取其他用户的属性。我知道所有用户都设置了 memberOf 属性,因为我在使用域管理员帐户登录时进行了检查。

active-directory ldap

21
推荐指数
1
解决办法
13万
查看次数

如何在 Apache LDAP 中对嵌套组中的用户进行身份验证?

我已经使用以下设置进行 LDAP 身份验证

 AuthName            "whatever"
 AuthType            Basic
 AuthBasicProvider   ldap
 AuthLDAPUrl         "ldap://server/OU=SBSUsers,OU=Users,OU=MyBusiness,DC=company,DC=local?sAMAccountName?sub?(objectClass=*)"
 Require ldap-group  CN=MySpecificGroup,OU=Security Groups,OU=MyBusiness,DC=company,DC=local
Run Code Online (Sandbox Code Playgroud)

这有效,但是我必须将所有要进行身份验证的用户放入MySpecificGroup. 但是在我配置的 LDAP 服务器上,MySpecificGroup它还包含MyOtherGroup具有另一个用户列表的组。

但是那些用户MyOtherGroup没有经过身份验证,我必须手动将它们全部添加到MySpecificGroup并且基本上不能使用嵌套分组。我使用的是 Windows SBS 2003。

有没有办法配置 Apache LDAP 来做到这一点?或者是否存在可能无限递归的问题,因此不允许?

ldap groups apache-2.2

21
推荐指数
4
解决办法
4万
查看次数

ldapsearch 密码文件格式

我应该如何传递密码以ldapsearch使用该-y <password file>选项?
如果我以纯文本形式在密码文件中写入密码,则会出现此错误:

ldap_bind: Invalid credentials (49)
    additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772
Run Code Online (Sandbox Code Playgroud)

如果我使用该-w <password>选项,也会发生同样的情况。

编辑
我正在运行的命令是

ldapsearch -x -D <my dn> -y .pass.txt -h server.x.x -b "dc=x,dc=y" "cn=*"
Run Code Online (Sandbox Code Playgroud)

文件.pass.txt包含我的密码的地方,以纯文本形式。DN 和密码都正确。如果我使用该-W选项运行命令并在提示符下键入密码,则该命令会成功运行,但我想以某种方式存储密码以制作脚本。

linux ldap

20
推荐指数
1
解决办法
2万
查看次数

LDAP 结构:dc=example,dc=com vs o=Example

我对 LDAP 比较陌生,已经看到了两种如何设置结构的示例。

一种方法是使用基础是:dc=example,dc=com而其他示例的基础是o=Example。继续下去,您可以拥有一个如下所示的组:

    dn: cn=team,ou=Group,dc=example,dc=com
    cn:团队
    对象类:posixGroup
    成员标识:user1
    成员标识:user2

...或使用“O”样式:

    dn:cn=团队,o=示例
    对象类:posixGroup
    成员标识:user1
    成员标识:user2

我的问题是:

  1. 是否有任何最佳实践要求使用一种方法而不是另一种方法?
  2. 您使用哪种风格只是偏好问题吗?
  3. 使用一种比另一种有什么优势吗?
  4. 一种方法是旧风格,一种是新改进的版本吗?

到目前为止,我已经采用了这种dc=example,dc=com风格。社区可以就此事提供的任何建议将不胜感激。

openldap ldap

19
推荐指数
1
解决办法
2万
查看次数

如何在 openldap 服务器上配置反向组成员身份维护?(成员)

我目前正在将 LDAP 身份验证集成到系统中,我想限制基于 LDAP 组的访问。做到这一点的唯一方法是通过搜索过滤器,因此我相信我唯一的选择是在我的搜索过滤器中使用“memberOf”属性。我的理解是“memberOf”属性是一个操作属性,可以由服务器为我创建任何时候为服务器上的任何“groupOfNames”条目创建新的“成员”属性。我的主要目标是能够将“成员”属性添加到现有的“groupOfNames”条目,并将匹配的“memberOf”属性添加到我提供的 DN。

到目前为止我已经成功实现了:

我对 LDAP 管理还是很陌生,但根据我在 openldap 管理员指南中的发现,反向组成员身份维护(也称为“成员覆盖”)似乎可以达到我正在寻找的效果。

我的服务器当前正在运行 openldap 2.4.15 的软件包安装(在 ubuntu 上为 slapd),它使用“cn=config”样式的运行时配置。我发现的大多数示例仍然引用了旧的“slapd.conf”静态配置方法,并且我已尽力使配置适应新的基于目录的模型。

我添加了以下条目以启用 memberof 覆盖模块:

使用 olcModuleLoad 启用模块

cn=config/cn\=module\{0\}.ldif

dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z
Run Code Online (Sandbox Code Playgroud)

为数据库启用覆盖并允许它使用它的默认设置(groupOfNames、member、memberOf 等)

cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof

dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: …
Run Code Online (Sandbox Code Playgroud)

openldap ldap

19
推荐指数
2
解决办法
4万
查看次数

使用 Active Directory 身份验证和授权设置 Mercurial

我正在评估将我的组织转移到 Mercurial 的可能性,但是我遇到了两个基本要求,我找不到合适的指针。

我如何设置 Mercurial 的中央存储库以使用中央 Active Directory 对用户进行身份验证,并且只允许他们在拥有正确凭据的情况下进行推送或拉取?

如何设置 Mercurial 项目存储库以仅允许属于特定组的用户推送/拉取源代码?我们需要这个来获得每个项目的授权。

在哪些 HTTP 服务器(IIS 或 Apache 等)上支持上述两个要求?

如果我问的是一些明显的问题,或者我遗漏了有关身份验证和授权工作原理的一些基本知识,我深表歉意。

active-directory ldap authentication mercurial

19
推荐指数
2
解决办法
1万
查看次数

鱿鱼中安全用户身份验证的故事

曾几何时,南美洲有一个美丽温暖的虚拟丛林,那里住着一个鱿鱼服务员。这是网络的感知图像:

                 <the Internet>
                        | 
                        | 
           A            |          B
Users <---------> [squid-Server] <---> [LDAP-Server] 
Run Code Online (Sandbox Code Playgroud)

Users请求访问 Internet 时,squid询问他们的姓名和护照,通过对他们进行身份验证LDAP,如果 ldap 批准了他们,那么他就授予了他们。

每个人都很高兴,直到一些嗅探器在用户和鱿鱼 [路径 A] 之间的路径中偷走了护照。这场灾难的发生是因为鱿鱼使用了Basic-Authentication方法。

丛林中的人们聚集在一起解决问题。一些兔子提供了使用NTLM方法。蛇更喜欢,Digest-AuthenticationKerberos树木则推荐。

毕竟,丛林人和所有人提供的许多解决方案都令人困惑!狮子决定结束这种局面。他喊出解决规则:

  • 解决方案是否安全!
  • 该解决方案是否适用于大多数浏览器和软件(例如下载软件)
  • 解决方案是否应该简单并且不需要其他庞大的子系统(如 Samba 服务器)
  • 该方法不应依赖于特殊域。(例如活动目录)

然后,一只猴子提供了一个非常合理、全面、聪明的解决方案,让他成为了新的丛林之王!

你能猜出解决方案是什么吗?

提示:squid和 之间的路径LDAP由狮子保护,因此解决方案不必固定它。

注意:对不起,如果故事无聊和混乱,但大部分都是真实的!=)

               /~\/~\/~\
            /\~/~\/~\/~\/~\
          ((/~\/~\/~\/~\/~\))
        (/~\/~\/~\/~\/~\/~\/~\)
       (////     ~   ~     \\\\)
       (\\\\(   (0) (0)   )////)
       (\\\\(   __\-/__   )////)
        (\\\(     /-\     )///)
         (\\\(  (""""")  )///)
          (\\\(  \^^^/  )///)
           (\\\(       )///) …
Run Code Online (Sandbox Code Playgroud)

security ldap kerberos authentication squid

19
推荐指数
1
解决办法
5620
查看次数