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