0

客户同时拥有内部域和 DMZ 域。此时两个域之间没有信任。我们在 DMZ 区域部署了 Web 应用程序,因为该应用程序也与外部用户进行了一些交互。

  1. 来自内部域的内部用户需要能够通过 Kerberos 身份验证登录到我们的 Web 应用程序,考虑到 Web 应用程序的应用程序池需要能够解密来自内部用户的服务票证,而应用程序池帐户来自 DMZ领域?
  2. 假设 #1 是可能的,在内部用户登录后,我们需要对其他内部用户和组的人员选择器进行 LDAP 查询。在这里,我们想通过 Kerbeos 委托对内部域进行 LDAP 查询。只是想知道在这种情况下我们如何找到内部域控制器。有什么方法可以查询 GC 吗?还是我们应该在配置文件中配置它,或者我们可以从登录用户的 UPN 中获取?现在假设我们有内部域控制器地址,我们如何通过 Kerbeos 约束委派模拟登录的内部用户来进行查询?使用 C# DirectoryEntry 构造函数 public DirectoryEntry (string path, string username, string password, System.DirectoryServices.AuthenticationTypes authenticationType); ,我们可以提供一个 authenticationType 作为委托,尽管我仍然需要提供我没有的用户名和密码。
4

1 回答 1

1

场景 1 是可能的,但您必须手动编写代码才能通过直接调用 SSPI 来接受票证。

场景 2 理论上可以与无约束委派一起工作(也许),但这是非常不安全的。

您应该认真考虑创建单向信任并启用基于资源的约束委派。然后,您将使用仅包含路径的构造函数重载。

public DirectoryEntry (string path);

它将推断当前用户并尝试在幕后进行模拟。

于 2020-07-07T15:38:30.333 回答