3.3. The Ticket-Granting Service (TGS) Exchange (票据授予服务交换)
3.3. The Ticket-Granting Service (TGS) Exchange (票据授予服务交换)
Summary (摘要)
| Message direction (消息方向) | Message type (消息类型) | Section (章节) |
|---|---|---|
| 1. Client to Kerberos (客户端到 Kerberos) | KRB_TGS_REQ | 5.4.1 |
| 2. Kerberos to client (Kerberos 到客户端) | KRB_TGS_REP 或 KRB_ERROR | 5.4.2, 5.9.1 |
客户端与 Kerberos TGS 之间的 TGS 交换由客户端发起, 当它寻求获得给定服务器的认证凭证时 (该服务器可能在远程域中注册)、当它寻求续期或验证现有票据时, 或当它寻求获得代理票据时。在第一种情况下, 客户端必须已使用 AS 交换获得了票据授予服务的票据 (TGT 通常在客户端最初向系统认证时获得, 例如当用户登录时)。TGS 交换的消息格式与 AS 交换的几乎相同。主要区别在于 TGS 交换中的加密和解密不在客户端的密钥下进行。相反, 使用 TGT 或可续期票据的会话密钥, 或认证器的子会话密钥。与所有应用服务器的情况一样, TGS 不接受过期的票据, 因此一旦可续期票据或 TGT 过期, 客户端必须使用单独的交换来获得有效票据。
TGS 交换由两条消息组成: 从客户端到 Kerberos 票据授予服务器的请求 (KRB_TGS_REQ), 以及回复 (KRB_TGS_REP 或 KRB_ERROR)。KRB_TGS_REQ 消息包括认证客户端的信息以及凭证请求。认证信息由认证头 (KRB_AP_REQ) 组成, 其中包括客户端先前获得的票据授予、可续期或无效票据。在 TGT 和代理情况下, 请求可以 (MAY) 包括以下一项或多项: 网络地址列表、要封装在票据中供应用服务器使用的类型化授权数据集合, 或附加票据 (其使用稍后描述)。TGS 回复 (KRB_TGS_REP) 包含请求的凭证, 在 TGT 或可续期票据的会话密钥中加密, 或者如果存在, 在认证器的子会话密钥中加密 (认证头的一部分)。KRB_ERROR 消息包含错误代码和解释出错原因的文本。KRB_ERROR 消息未加密。KRB_TGS_REP 消息包含可用于检测重放并将其与它回复的消息关联的信息。KRB_ERROR 消息还包含可用于将其与它回复的消息关联的信息。第 3.1 节中提到的关于 KRB_ERROR 消息的完整性保护的相同评论适用于 TGS 交换。