原文出处:http://technet.microsoft.com/zh-cn/library/cc771144(v=ws.10).aspx
以下方案有助于解释如何使用 RODC 进行身份验证过程。在此方案中:
- 用户 Bob 想登录名为 BOB_WS 的工作站。
- 其中安装 BOB_WS 工作站的子网由 RODC 提供服务。
- 允许 Bob 的用户帐户将凭据缓存在 RODC 上,但这些凭据尚未缓存。
- 允许 BOB_WS 计算机帐户将凭据缓存在 RODC 上,但凭据尚未缓存。
Bob 尝试登录工作站 BOB_WS。首先,必须从域控制器中检索 TGT。此方案中的 TGT 检索过程如下图所示。
- RODC 作为分支机构的 KDC 播发。这意味着当 BOB_WS 搜索域控制器以对 Bob 的登录请求进行身份验证时,它可以找到 RODC 并将其用作 KDC。BOB_WS 的 Kerberos 身份验证包准备 TGT 请求并将其发送给 RODC。
- RODC 收到来自 BOB_WS 的 TGT 请求。由于 RODC 不知道 Bob 帐户的密码,因此无法为 Bob 创建 TGT。RODC 将此 TGT 请求转发给可写的 Windows Server 2008 域控制器。
- 可写的 Windows Server 2008 域控制器对请求进行身份验证。
- 然后将结果返回给 RODC。如果 Bob 提供正确的凭据,则结果为 TGT。如果 Bob 的凭据验证失败,则结果为错误消息。在此方案中,如果登录时 Bob 输入了有效的用户名和密码,则验证成功。
- 可写域控制器将 TGT 返回给 RODC 的同时,还将 Bob 帐户的可分辨名称(也称为 DN)添加到 RODC 计算机帐户的 msDS-AuthenticatedToAccountList 属性中。这将创建一条 Bob 已通过 RODC 的身份验证的记录。
- 然后 RODC 将结果传递给 BOB_WS。
- RODC 将 TGT 发送回 BOB_WS 之后,还会请求可写域控制器将 Bob 的凭据复制到 Active Directory 数据库的副本中。
- 当可写域控制器收到将 Bob 的凭据复制到 RODC 的请求时,将检查密码复制策略,以确定是否允许 RODC 缓存 Bob 帐户的凭据。
- 如果检查指示可以缓存凭据,则可写域控制器允许将 Bob 的帐户凭据复制到 RODC。
- 在可写域控制器发送 RODC 请求的凭据的同时,可写域控制器会将 Bob 帐户的可分辨名称写入 RODC 计算机帐户的 msDS-RevealedList 属性。这将创建一条 Bob 帐户的凭据现在已缓存在 RODC 上的记录。
- RODC 将 Bob 的凭据存储在 Active Directory 数据库中其用户帐户的相应属性中。
此时:
- 可写域控制器包含一条已允许将 Bob 的凭据复制到 RODC 的记录。
- Bob 帐户的凭据缓存在 RODC 上。
- Bob 具有可写域控制器生成的 TGT。
下一步,Bob 必须获得 BOB_WS 的服务票证才能对其进行操作,如下图所示。
- BOB_WS 将 Bob 的服务票证请求发送给 RODC。该请求包含由可写域控制器颁发的 TGT。
- RODC 不知道可写域控制器通常使用的 krbtgt 帐户的密码;因此,它必须将服务票证请求转发给可写域控制器。但是 RODC 已缓存了 Bob 的凭据;因此,它可以满足 Bob 的服务票证请求。因此,在可写域控制器成功响应转发的请求之后,RODC 向 BOB_WS 返回一条 Kerberos 错误消息而不是请求的服务票证。此错误消息指出 Bob 在服务票证请求中使用的 TGT 不再有效,因此必须颁发新的 TGT。
- 收到此错误消息之后,BOB_WS 丢弃可写域控制器颁发的 TGT,并从 RODC 请求新的 TGT。
- RODC 已缓存了 Bob 的凭据,因此它准备一个 TGT 并用其自己的 krbtgt 帐户的密码对该 TGT 进行签名。
- 然后 RODC 将此新的 TGT 发送回 BOB_WS。
- BOB_WS 再次将 Bob 的服务票证请求发送给 RODC。现在,服务票证请求包含由 RODC 颁发的 TGT。
- RODC 处理服务票证请求。由于它没有缓存 BOB_WS 计算机帐户凭据,因此它无法创建服务票证。它必须将服务票证请求转发给某个可写域控制器。
- 可写域控制器收到来自 RODC 的服务票证请求。可写域控制器:
- 验证 TGT。(可写的域控制器可以验证 TGT,因为它知道特定于 RODC 的 krbtgt 帐户的密码。)
- 确定密码复制策略是否允许 RODC 缓存 Bob 帐户的凭据。允许 RODC 仅为允许将凭据缓存在其上的帐户创建 TGT。
- 评估 Bob 帐户的成员身份并准备服务票证的权限验证证书 (PAC) 部分。它不使用由 RODC 准备的 TGT 的 PAC 部分。这样可防止在 RODC 受到威胁以及向 TGT 的 PAC 部分放置虚假信息时提升权限。
- 可写域控制器创建服务票证并将其发送回 RODC。
- 然后 RODC 将服务票证转发给 BOB_WS。
- Bob 便可以开始在 BOB_WS 上工作。
- RODC 将服务票证发送回 BOB_WS 之后,还请求可写域控制器将 BOB_WS 凭据复制到其 Active Directory 数据库的副本。
- 当上游域控制器收到将 BOB_WS 帐户凭据复制到 RODC 的请求时,将检查密码复制策略,看是否允许 RODC 缓存 BOB_WS 帐户的凭据。
- 如果可以缓存凭据,则可写域控制器允许将 BOB_WS 帐户凭据复制到 RODC。
- 在可写域控制器发送 RODC 请求的凭据的同时,可写域控制器将 BOB_WS 帐户的可分辨名称写入 RODC 计算机帐户的 msDS-RevealedList 属性。这将创建一条 BOB_WS 的凭据现在已缓存在 RODC 上的记录。
- RODC 将 BOB_WS 计算机的凭据存储在 Active Directory 数据库中其计算机帐户的相应属性中。
此时:
- Bob 已登录 BOB_WS 工作站,并且他可以请求服务票证以访问服务器上的资源,方法与他为其自己的工作站请求服务票证的方法一样。
- 如果 Bob 访问的任何计算机允许将凭据缓存在 RODC 上,则在计算机处理服务票证请求时 RODC 将缓存凭据。
- RODC 缓存 BOB_WS 计算机帐户的凭据。
- 可写域控制器创建一条其已将 BOB_WS 计算机帐户的凭据显示给 RODC 的记录。
在 Bob 下次尝试登录 BOB_WS 工作站时,RODC 无需联系可写域控制器即可处理登录请求,因为它已缓存了 Bob 帐户和 BOB_WS 帐户的凭据,如下图所示。
- RODC 作为分支机构的 KDC 播发。这意味着当 BOB_WS 搜索域控制器以对 Bob 的登录请求进行身份验证时,它可以找到 RODC 并将其用作 KDC。BOB_WS 的 Kerberos 身份验证包准备 TGT 请求并将其发送给 RODC。
- RODC 收到来自 BOB_WS 的 TGT 请求。由于 RODC 已经知道 Bob 帐户的密码,因此它可以为 Bob 创建 TGT。RODC 在创建 TGT 时使用其自己的 krbtgt 帐户。
- RODC 将 TGT 发送回 BOB_WS,并将 TGT 存储在与 Bob 的登录会话关联的票证缓存中。
- 为了能够在 BOB_WS 上工作,Bob 需要服务票证来获得访问权限。BOB_WS 上的身份验证包创建服务票证请求并将其发送给 RODC。BOB_WS 上的身份验证包准备 TGT 请求并将其发送给 RODC。
- RODC 收到来自 BOB_WS 的服务票证请求,并且由于它已经知道 BOB_WS 计算机帐户的密码,因此它可以为 Bob 创建服务票证以访问 BOB_WS。RODC 在创建 TGT 时使用其自己的 krbtgt 帐户。
- RODC 将服务票证发送回 BOB_WS,并将服务票证存储在与 Bob 的登录会话关联的票证缓存中。
- Bob 便可以开始在 BOB_WS 上工作。
转载于:https://blog.51cto.com/labixiaoniu/1246351