gpt4 book ai didi

ldap - LDAP 中使用哪个参数进行身份验证

转载 作者:行者123 更新时间:2023-12-04 10:04:56 27 4
gpt4 key购买 nike

在 LDAP 身份验证的情况下, 是什么?参数 一般用于身份验证 .我想对于通过 ldap 登录的用户来说,使用 DN 会很头疼,因为它太大而无法记住。
使用 uid 或 sAMAccountName 进行身份验证的选项如何,在我的实现中,我检索相应 uid 或 sAMAccountName 的 dn 并继续进行身份验证。

我走对了路吗?

最佳答案

在 LDAP 中,可以对连接或 session 进行身份验证。当 LDAP 客户端与 LDAP 目录服务器建立新连接时,该连接的授权状态为匿名。 LDAP 客户端可以使用 BIND 请求来请求更改授权状态。

BIND 请求有两种形式:简单和 SASL。 Simple 使用专有名称和密码,SASL 使用一种机制选择,例如,PLAIN、LOGIN、CRAM-MD5、DIGEST-MD5、GSSAPI 和 EXTERNAL - 除了 GSSAPI 和 EXTERNAL 之外,所有这些都太弱了用于生产场景或关键任务领域。

要使用简单 BIND,请构建 BIND 请求并将其传输到 LDAP 目录服务器。 LDAP 目录服务器将使用包含结果代码的 BIND 响应进行响应。结果代码是一个整数,任何其他零表示 BIND 请求失败。如果结果码为零,则 BIND 请求成功并且 session 授权状态已更改为 BIND 请求中使用的专有名称的状态。

同一连接/ session 上的每个后续 BIND 请求都会将授权状态设置为匿名,并且同一连接/ session 上的每个后续成功 BIND 请求都会将授权状态设置为与身份验证 ID 关联的授权状态,即简单 BIND 情况下的专有名称,但在使用 SASL 的情况下可能是其他名称 - 现代专业质量服务器可以将传入名称映射到不同的 DN。

无论使用哪种语言,构建 BIND 请求,将其传输到服务器,并解释响应。

更新:

如果专有名称未知,或者太麻烦(通常是 Web 应用程序用户不知道他们是如何进行身份验证的,并且不会关心他们是否知道),LDAP 应用程序应该在目录中搜索用户。成功的搜索响应始终包含可分辨名称,然后在简单的 BIND 中使用该名称。

搜索至少包含以下内容:

  • 基对象:优于用户的专有名称,例如dc=example,dc=com
  • 范围:基础级别、基础以下一级或基础以下的子树。例如,如果用户位于 ou=people,dc=example,dc=com 的下属, 使用基础对象 ou=people,dc=example,dc=com和范围one-level .这些搜索参数可查找类似以下的条目:uid=user1,ou=people,dc=example,dc=com
  • a filter:缩小可能返回给客户端的搜索结果,例如(objectClass=inetOrgPerson)
  • 请求的属性列表:从条目返回给客户端的属性。在这种情况下,请使用 1.1 ,这意味着没有属性并返回 DN(专有名称),这是简单 BIND 所需的全部内容。

  • 也可以看看

    关于部分中的链接 here

    关于ldap - LDAP 中使用哪个参数进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12190208/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com