使用 Kerberos 进行相互身份验证

相互身份验证是一项安全功能,客户端进程必须向服务证明其标识,并且服务必须在通过客户端/服务连接传输任何应用程序流量之前向客户端证明其标识。

Active Directory 域服务和 Windows 支持服务主体名称(SPN),这是客户端对服务进行身份验证的 Kerberos 机制中的关键组件。 SPN 是一个唯一名称,用于标识服务的实例,并与运行服务实例的登录帐户相关联。 SPN 的组件使客户端可以在没有服务登录帐户的情况下为服务编写 SPN。 这使客户端能够请求服务对其帐户进行身份验证,即使客户端没有帐户名称。

本部分概述:

  • 使用 Kerberos 进行相互身份验证。
  • 编写唯一的 SPN。
  • 服务安装程序如何在与服务实例关联的帐户对象上注册 SPN。
  • 客户端应用程序如何使用Active Directory 域服务中的服务实例的服务连接点 (SCP) 对象检索从中为服务撰写 SPN 的数据。
  • 客户端应用程序如何将服务 SPN 与安全支持提供程序接口 (SSPI) 结合使用来对服务进行身份验证。
  • Windows 套接字客户端/服务应用程序的代码示例,该应用程序使用 SCP 和 SSPI 来执行相互身份验证。
  • RPC 客户端/服务使用 RPC 名称服务和 RPC 身份验证执行相互身份验证的代码示例。
  • Windows 套接字注册和解析(RnR)服务如何使用 SPN 执行相互身份验证。

本部分讨论如何使用 Active Directory 域 服务进行相互身份验证,特别是服务连接点和服务主体名称在相互身份验证中的目的。 这不是有关如何使用 SSPI 进行相互身份验证或 RPC 和 Windows 套接字应用程序可用的身份验证和安全支持的完整讨论。

有关详细信息,请参阅: