1.2. Cross-Realm Operation (跨域操作)
Kerberos 协议旨在跨组织边界运行。一个组织中的客户端可以向另一个组织中的服务器进行认证。希望运行 Kerberos 服务器的每个组织都建立自己的 "域 (realm)"。客户端注册所在域的名称是客户端名称的一部分, 并且可以被最终服务用来决定是否接受请求。
通过建立 "域间 (inter-realm)" 密钥, 两个域的管理员可以允许在本地域中认证的客户端向其他域中的服务器证明其身份。域间密钥的交换 (可以为每个方向使用单独的密钥) 将每个域的票据授予服务注册为另一个域中的主体。然后客户端能够从其本地域获取远程域票据授予服务的 TGT。当使用该 TGT 时, 远程票据授予服务使用域间密钥 (通常与其自己的正常 TGS 密钥不同) 来解密 TGT; 因此它确信票据是由客户端自己的 TGS 颁发的。由远程票据授予服务颁发的票据将向最终服务指示客户端是从另一个域认证的。
如果没有跨域操作, 并且在适当的许可下, 客户端可以安排在远程域中注册一个单独命名的主体, 并与该域的服务进行正常交换。然而, 对于即使是少量的客户端, 这也变得繁琐, 并且需要如此处描述的更自动的方法。
如果两个域共享一个域间密钥, 或者如果本地域与与远程域通信的中间域共享域间密钥, 则称一个域与另一个域通信。认证路径 (authentication path) 是在从一个域通信到另一个域时传递的中间域的序列。
域可以分层组织。每个域与其父域共享一个密钥, 并与每个子域共享不同的密钥。如果两个域不直接共享域间密钥, 分层组织允许轻松构建认证路径。
如果不使用分层组织, 可能需要查询数据库以便在域之间构建认证路径。
虽然域通常是分层的, 但可以绕过中间域通过备用认证路径实现跨域认证。(这些可能是为了使两个域之间的通信更有效而建立的。) 对于最终服务来说, 知道在决定对认证过程有多大信任时传递了哪些域是很重要的。为了便于做出这一决定, 每个票据中的一个字段包含参与认证客户端的域的名称。
应用程序服务器最终负责接受或拒绝认证, 并且应该 (SHOULD) 检查传递字段。应用程序服务器可以选择依赖应用程序服务器域的密钥分发中心 (Key Distribution Center, KDC) 来检查传递字段。在这种情况下, 应用程序服务器的 KDC 将设置 TRANSITED-POLICY-CHECKED 标志。中间域的 KDC 在为其他域颁发 TGT 时也可以检查传递字段, 但鼓励它们不要这样做。客户端可以通过设置 DISABLE-TRANSITED-CHECK 标志来请求 KDC 不检查传递字段。KDC 应该 (SHOULD) 接受这个标志。