Microsoft协商
Microsoft Negotiate 是 安全支持提供程序(SSP),充当 安全支持提供程序接口(SSPI)和其他 SSP 之间的应用程序层。 当应用调用 SSPI 以登录网络时,可以指定 SSP 来处理请求。 如果应用指定了 Negotiate,则 Negotiate 将分析请求,并选取最佳 SSP 以基于客户配置的安全策略处理请求。
目前,协商安全包在 Kerberos 和 NTLM之间进行选择。 协商选择 Kerberos,除非满足以下条件之一:
- 身份验证中涉及的系统之一无法使用它。
- 调用应用没有提供足够的信息来使用 Kerberos。
若要允许 Negotiate 选择 Kerberos 安全提供程序,客户端应用必须提供以下项之一:
- 服务主体名称(SPN)。
- 用户主体名称(UPN)。
- 作为目标名称的 NetBIOS 帐户名称。
否则,Negotiate 始终选择 NTLM 安全提供程序。
使用协商包的服务器能够响应专门选择 Kerberos 或 NTLM 安全提供程序的客户端应用。 但是,客户端应用必须知道服务器支持协商包,以使用 Negotiate 请求身份验证。 不支持 Negotiate 的服务器不能始终响应从将 Negotiate 指定为 SSP 的客户端发出的请求。
使用协商包的原因
- 允许系统使用最安全的可用协议。
- 确保应用的向前兼容性。
- 确保应用展示的行为符合客户设置的安全策略。