gpt4 book ai didi

authentication - 跨受信任域的 LDAP 用户身份验证

转载 作者:行者123 更新时间:2023-12-04 06:42:09 25 4
gpt4 key购买 nike

我的应用程序通过 LDAP(通常是 Active Directory)定义授权用户:

  • 客户定义了一个 LDAP 服务器 (TreeA) 和一个组 (GroupA)。 GroupA 中的任何用户都可以使用该应用程序。
  • 在登录时,用户发送他们的用户名和密码——如果使用他们的凭据绑定(bind)到 LDAP TreeA,并且他们的用户帐户在 GroupA 中,他们很高兴

  • 我遇到过两个 Active Directory 相互信任的情况,并且 TreeA 中指定的 GroupA 包含来自 TreeB 的用户。所以第 2 步失败了,因为我正在尝试针对 TreeA 对 UserB(来自 TreeB)进行身份验证。

    该应用程序可以访问 TreeA,所以我想它可以查看 GroupA 并在那里看到 UserB。但是它怎么知道它需要向 TreeB 发送绑定(bind)请求来验证用户名和密码呢?

    有没有更好的方法来解决这个问题?
    由于存在信任关系,因此对 TreeA 的此类绑定(bind)请求是否应该自动转发给 TreeB?

    最佳答案

    可能是您在 LDAP 服务器 (TreeA) 上遇到了配置问题。您写道,TreeA 和 TreeB 之间存在信任,因此您可以将 UserB(来自 TreeB)添加为 TreeA 中 GroupA 的成员。如果你能做到这一点,那么你已经成功地在 TreeA 和 TreeB 之间建立了正确方向的信任。您应该理解,这种信任仅意味着 Active Directory B 仅验证用户密码,但默认情况下 UserB 将无权访问 Active Directory A 中的任何资源。 UserB 无权将 LDAP 绑定(bind)到服务器 A。在这种情况下,问题将通过授予 UserB 对服务器 A 的远程登录权限和对 GroupA 的读取权限以及可能对 GroupA 所在的 OU 的读取权限来解决。你可以试试Insight for Active Directory监控 AD 访问以定位权限问题。

    您的问题的其他可能原因可能是您用于 LDAP 访问的 API 的使用。在您的问题中,您没有写任何有关 API 的信息。你使用 Win32 API 像 ldap_bind_s或使用 DirectoryEntry在.NET 中?在这两种情况下,您要么在绑定(bind)期间显式使用域名和帐户名(对于 UserB),要么使用 null,这可能很重要。用于用户当前用户凭据的名称和密码。

    使用 TreeA 的固定帐户对 TreeA 的所有访问(也用于对 UserB 的测试)也可以解决问题,但它可能只是某种应用程序使用。

    无论如何,您的问题中的更多信息可以缩小问题和解决问题的方法。

    关于authentication - 跨受信任域的 LDAP 用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5051381/

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