Microsoft Negotiate

Microsoft Negotiate 是一个 安全支持提供程序 (SSP) ,充当 安全支持提供程序接口 (SSPI) 和其他 SSP 之间的应用层。 当应用调用 SSPI 以登录网络时,它可以指定 SSP 来处理请求。 如果应用指定 Negotiate,Negotiate 将分析请求,并根据客户配置的安全策略选择最佳 SSP 来处理请求。

目前,协商安全包在 KerberosNTLM 之间进行选择。 协商选择 Kerberos,除非以下条件之一适用:

  • 它不能由身份验证所涉及的系统之一使用。
  • 调用应用未提供足够的信息来使用 Kerberos。

若要允许 Negotiate 选择 Kerberos 安全提供程序,客户端应用必须提供以下项之一:

  • 服务主体名称 (SPN) 。
  • UPN) (用户主体名称。
  • 作为目标名称的 NetBIOS 帐户名称。

否则,Negotiate 始终选择 NTLM 安全提供程序。

使用 Negotiate 包的服务器能够响应专门选择 KerberosNTLM 安全提供程序的客户端应用。 但是,客户端应用必须知道服务器支持 Negotiate 包以使用 Negotiate 请求身份验证。 不支持 Negotiate 的服务器不能始终响应指定 Negotiate 作为 SSP 的客户端发出的请求。

使用协商包的原因

  • 允许系统使用最安全的可用协议。
  • 确保应用的向前兼容性。
  • 确保应用表现出符合客户设置的安全策略的行为。