Microsoft协商

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

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

  • 身份验证中涉及的系统之一无法使用它。
  • 调用应用没有提供足够的信息来使用 Kerberos。

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

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

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

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

使用协商包的原因

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