1.2. Kerberos 组件
Kerberos 本身是一种网络协议,通过使用 secret-key 加密为客户端/服务器应用的用户启用身份验证。Kerberos 通常用于对网络上的桌面用户进行身份验证,但通过使用一些其他工具,它可用于对用户进行 Web 应用的身份验证并为一组 Web 应用提供 SSO。这基本上允许已在桌面网络上通过身份验证的用户无缝访问 Web 应用程序中的安全资源,而无需重新身份验证。此概念称为基于桌面的 SSO,因为用户是使用基于桌面的身份验证机制进行身份验证,并且 Web 应用也在使用其身份验证令牌或票据。这与其他 SSO 机制(如基于浏览器的 SSO)不同,后者通过浏览器验证用户和签发令牌。
Kerberos 协议定义了它在身份验证和授权中使用的几个组件:
票证
ticket 是一种安全令牌形式,Kerberos 使用它针对主体发布和身份验证及授权决策。
身份验证服务
身份验证服务(AS )在主体首次登录网络时需要登录。身份验证服务负责签发票据授予票据(TGT),这是根据票据授予服务和随后访问受保护服务和资源进行验证所需的。
ticket 授予服务
票据授予服务 (TGS)负责向主体和他们尝试访问的目标服务器发出服务票据和特定的会话信息。这基于由主体提供的 TGT 和目的地信息。然后,使用此服务票据和会话信息建立与目的地的连接,并访问所需的安全服务或资源。
密钥分发中心
关键分发中心 (KDC)是同时承载 TGS 和 AS 的组件。KDC 以及客户端或主体以及服务器或安全服务是执行 Kerberos 身份验证所需的三个部分。
ticket 授予票据
授予票据(TGT )是 AS 向主体发出的票据类型。TGT 旦通过其用户名和密码针对 AS 成功进行了验证后被授予 TGT。TGT 由客户端在本地缓存,但经过加密后,只有 KDC 可以读取它并且客户端无法读取。这允许 AS 在 TGT 中安全地存储授权数据和其他信息,供 TGS 使用,并让 TGS 能够使用此数据做出授权决策。
Service Ticket
服务票据 (ST)是基于 TGS 的 TGT 和预期目的地向主体发出的票据类型。主体为 TGS 提供 TGT 和预期目的地,TGS 验证主体是否可以根据 TGT 中的授权数据访问目的地。如果成功,TGS 会为客户端和目的地服务器(即含有受保护服务或资源的服务器)向客户端发出 ST。这授予客户端对目标服务器的访问权限。ST 由客户端和服务器缓存,并且可由客户端和服务器读取,也包含允许客户端和服务器安全通信的会话信息。
Kerberos 与网络的 DNS 设置之间有紧密的关系。例如,当客户端根据它所运行的主机的名称访问 KDC 时,会做出某些假设。因此,务必要正确配置除 Kerberos 设置之外的所有 DNS 设置,以确保客户端能够连接。