Dou*_*ugN 5 authentication trust dns ldap active-directory
我的应用程序通过LDAP(通常是Active Directory)定义授权用户:
我遇到了两个活动目录相互信任的情况,TreeA中指定的GroupA包含来自TreeB的用户.因此,第2步失败是因为我正在尝试针对TreeA对UserB(来自TreeB)进行身份验证.
该应用程序可以访问TreeA,所以我想它可以在GroupA中查看并在那里查看UserB.但是它怎么知道它需要向TreeB发送绑定请求以验证用户名和密码?
有没有更好的方法来解决这个问题?
由于存在信任关系,对TreeA的此类绑定请求是否应自动转发到TreeB?
可能是您刚刚在 LDAP 服务器 (TreeA) 上遇到配置问题。您写道,TreeA 和 TreeB 之间存在信任,因此您可以将 UserB(来自 TreeB)添加为 TreeA 中 GroupA 的成员。如果你能做到这一点,那么你就成功地在 TreeA 和 TreeB 之间建立了正确方向的信任。您应该明白,该信任仅意味着 Active Directory B 仅验证用户密码,但默认情况下 UserB 无权访问 Active Directory A 的任何资源。UserB 无权将 LDAP 绑定到服务器 A。在这种情况下,可以通过向 UserB 授予服务器 A 上的远程登录权限和对 GroupA 的读取权限以及对 GroupA 所在 OU 的可能读取权限来解决问题。您可以尝试使用Insight for Active Directory来监控 AD 访问,以定位权限问题。
问题的其他可能原因可能是您用于 LDAP 访问的 API 的使用。在你的问题中,你没有写任何有关 API 的信息。您使用ldap_bind_s等 Win32 API还是使用.NET 中的DirectoryEntry ?null在这两种情况下,在绑定期间显式使用域名和帐户名(对于 UserB)或同时使用用户当前用户凭据的名称和密码可能很重要。
使用 TreeA 的固定帐户对 TreeA 的所有访问(也用于有关 UserB 的测试)也可以解决该问题,但只有某种应用程序使用才有可能。
无论如何,您的问题中的更多信息都可以缩小问题范围以及解决问题的方法。