使用安全包

安全支持提供程序接口 (SSPI) 可与以下安全包一起使用:

Kerberos 和 NTLM 协议作为Secur32.dll安全支持提供程序的安全包实现, (SSP) 随操作系统一起提供。 默认情况下,系统启动时, 本地安全机构 (LSA) 在计算机上加载对 Kerberos 和 NTLM 身份验证的支持。 在 Windows Server 或 Windows 域中,任一包都可用于对网络登录和客户端/服务器连接进行身份验证。 使用哪一个取决于连接另一端的计算机的功能。 如果可用,则始终首选 Kerberos 协议。

为交互式用户建立安全上下文后,用户的安全上下文中运行的进程可以加载 Kerberos 或 NTLM 包的另一个实例,以支持消息的交换、签名、验证、加密和解密。 但是,除了 LSA 之外,任何其他进程都不允许访问凭据缓存中的 会话密钥 或票证。

系统服务和传输级应用程序通过 SSPI 访问 SSP,SSPI 提供用于枚举系统上可用的安全包、选择包以及使用该包获取经过身份验证的连接的功能。

SSPI 中的方法是开发人员无需了解特定 安全协议的详细信息即可使用的泛型例程。 例如,对客户端/服务器连接进行身份验证时:

  1. 连接客户端上的应用程序使用 SSPI 函数 InitializeSecurityContext (General) 凭据发送到服务器。
  2. 连接服务器端的应用程序使用 SSPI 函数 AcceptSecurityContext (General) 进行响应。
  3. 对连接进行身份验证后,服务器上的 LSA 使用来自客户端的信息来生成 访问令牌
  4. 然后,服务器可以调用 SSPI 函数 ImpersonateSecurityContext ,将访问令牌附加到服务的模拟线程。

Kerberos 安全包

Kerberos 安全包 基于 Kerberos 身份验证协议

如果使用 Kerberos 协议对客户端/服务器连接进行身份验证, 则 InitializeSecurityContext (Kerberos) 将生成 GSSAPI 消息,其中包含来自客户端的KRB_AP_REQ消息。 AcceptSecurityContext (Kerberos) 然后生成 GSSAPI 消息,其中包含来自服务器的KRB_AP_REP消息。

有关在实现 Kerberos 协议时在后台执行的步骤的背景信息,请参阅 Microsoft Kerberos

所有分布式服务都使用 SSPI 访问 Kerberos 协议。 Kerberos 协议用于身份验证的方式的部分列表包括:

  • 打印后台处理程序服务
  • CIFS/SMB 远程文件访问
  • 对 Active Directory 的 LDAP 查询
  • 分布式文件系统管理和引用
  • IPsec 主机到主机安全机构身份验证
  • 针对网络服务质量的预留请求
  • Internet Information Services 的 Intranet 身份验证
  • 使用经过身份验证的 RPC 进行远程服务器或工作站管理
  • 域用户和计算机的证书服务证书请求

NTLM 安全包

NTLM 安全包基于 NTLM 身份验证协议。