跨域身份验证如何在防火墙环境中工作?

LVL*_*ron 6 active-directory

这是一种简化,名称已更改以保护无辜者。

The assets:

Active Directory Domains
corp.lan
saas.lan

User accounts
user01@corp.lan
user02@corp.lan

Servers
dc.corp.lan (domain controller)
dc.saas.lan (domain controller)
server.saas.lan
Run Code Online (Sandbox Code Playgroud)

域之间存在一种单向信任,因此用户帐户在 corp.lan 中并登录到 saas.lan 中的服务器

dc.corp.lan 和 dc.saas.lan 之间没有防火墙

server.saas.lan 位于防火墙区域中,并且存在一组规则,因此它可以与 dc.saas.lan 通信

我可以使用 user01@corp.lan 登录 server.saas.lan - 但我不明白它是如何工作的。如果我查看防火墙日志,我会在 server.saas.lan 和 dc.saas.lan 之间看到一堆登录信息

我还看到了 server.saas.lan 和 dc.corp.lan 之间的一堆 DROPPED 喋喋不休。据推测,这是因为 server.saas.lan 正在尝试对 user01@corp.lan 进行身份验证,但不存在允许这些主机之间进行通信的防火墙规则。

但是,user01@corp.lan 可以成功登录server.saas.lan - 登录后,我可以“echo %logonserver%”并获取\dc.corp.lan。

所以.... 我有点困惑帐户如何实际获得身份验证。在 server.saas.lan 无法与 dc.corp.lan 通话后,dc.saas.lan 最终会与 dc.corp.lan 通话吗?

只是想弄清楚需要更改/修复/更改的内容。

Rya*_*ies 3

您并没有真正向我们提供足够的细节来确定地回答这个问题。例如,您没有向我们提供任何有关被阻止流量的确切性质、流量类型、林或外部信任、每个域成员之间允许使用哪些端口、您的身份的任何信息尝试连接到服务器(远程桌面?驱动器映射?)等等。

\n\n

无论如何我都会尝试一下。假设我正在尝试使用远程桌面客户端连接到其他林中的服务器。所以我们知道客户端和服务器之间至少必须允许 TCP 端口 3389。

\n\n

(作为参考,本文档基本上是 Active Directory 如何使用 Kerberos 的圣经。恕我直言,这是网络上最好的 TechNet 文章之一。这是另一篇关于 AD 信任的极其相关的 TechNet 文章,供您添加书签。)

\n\n

在使用 Kerberos 进行身份验证期间,最后步骤之一是客户端将其服务票证和身份验证器直接发送到它尝试访问的远程服务。(KRB_AP_REQ,然后一个可选的 KRB_AP_REP 从服务器返回到客户端)。如果由于端口被阻止而无法发生这种情况,则 Kerberos 身份验证也无法发生。如果我从我的 DC 收到将我定向到您的 DC 的 TGS 引用,并且我无法直接查询您的 DC,则我无法使用 Kerberos。

\n\n

也许这就是您看到的一些流量下降的情况。

\n\n

那么,当 Kerberos 失败时会发生什么?客户端通常会退回到下一个安全提供程序,例如 NTLM。您可以通过同一端口 3389 将受 NTLM 保护的凭据传递到服务器。此时,服务器只需要验证您的凭据。请参阅我链接的第二篇文章中名为“NTLM 转介处理”的部分。

\n\n
\n

NTLM 推荐处理

\n\n

如果客户端使用 NTLM 进行身份验证,则初始身份验证请求将直接从客户端发送到目标域中的资源服务器。该服务器创建一个质询并由客户端响应。然后,服务器将用户\xe2\x80\x99s 响应发送到其计算机帐户域中的域控制器。此域控制器\n 根据其安全帐户数据库检查用户帐户。如果数据库中不存在该帐户,则域控制器使用以下逻辑确定是执行直通身份验证、转发请求还是拒绝请求:

\n\n
    \n
  • 当前域与user\xe2\x80\x99s域是否有直接信任关系?

    \n\n

    \xe2\x97\xa6 如果是,则域控制器将客户端的凭据发送到用户\xe2\x80\x99s 域中的域控制器进行直通身份验证。

    \n\n

    \xe2\x97\xa6 如果否,请执行下一步。

  • \n
  • 当前域与user\xe2\x80\x99s域是否具有可传递信任关系?

    \n\n

    \xe2\x97\xa6 如果是,则将身份验证请求传递到信任路径中的下一个域。\n 此域控制器通过根据其自己的安全帐户数据库检查\n 用户\xe2\x80\x99s 凭据来重复该过程。

  • \n
\n\n

\xe2\x97\xa6 如果否,则向客户端发送拒绝登录消息。

\n
\n\n

因此,最终,考虑到您向我们提供的信息有限,我相信您在对其他域中的服务进行身份验证时正在目睹这个过程。

\n