Windows系统HTTP身份验证方法

当Windows客户端尝试使用HTTP协议访问基于Web的资源时,会在客户端和服务器之间建立“对话”。换句话说,服务器告诉客户端,访问资源之前进行身份验证 ,并且服务器还告诉客户端哪些类型的认证机制可以接受通信。

客户端使用它支持的身份验证方法进行访问,如果服务器可以接受,则建立会话。用户凭据(用户名和密码)将发送到服务器,这些凭证可能安全,也可能不安全。实际上,服务器可能根本不需要身份验证。这一切都取决于使用哪种方式来建立会话。


HTTP身份验证方式:

以下是Windows客户端最常用的身份验证方法。

1.Anonymous

匿名访问意味着不涉及身份验证。因此,用户无需提供用于向服务器进行身份验证的用户名和密码。 如Exchange server 外网收邮件可以配置匿名方式

2.Basic (基本身份验证)

基本身份验证是最不安全的身份验证,因为它允许以明文形式发送用户名和密码。此方式是不安全

3.Digest

摘要式身份验证优于基本身份验证,因为它使用质询 - 响应方法使***窃取密码或用户名变得有些困难。但是,这不是一种非常安全的方法。默认IIS已废弃次验证方法

4.NTLM

与摘要式身份验证相比,(NTLM)提供了更好的质询 - 响应方法。然而,这是一种过时的技术,此身份验证仅用于更安全的身份验证(如Kerberos)不可用的情况。

5.Negotiate(协商身份验证)

协商提供NTLM身份验证和Kerberos身份验证之间的选择。 Kerberos是一种使用相互身份验证的速度更快且非常安全的协议,因此它比NTLM更加试用。在相互身份验证中,客户端和服务器都相互进行身份验证,从而提供更高级别的安全性。

 

配置IIS 身份验证时建议

  • 尽可能使用Kerberos身份验证

自2000年以来,Kerberos是Windows中的默认身份验证协议,但有些情况可能需要使用NTLM身份验证。例如,如果第三方或旧版客户端不支持Kerberos,则可以使用NTLM。如果您有某些不支持Kerberos的应用程序,则可能会支持NTLM。

  • 如果您没有可用的Kerberos,如使用Basic with SSL证书加密,但不要使用不带SSL的Basic,因为它提供的安全性非常低。

  • 避免使用Digest(摘要式)身份验证。

上一篇:Python学习笔记:字符编码原理和操作详解


下一篇:kerberos从节点同步数据异常--returned a bad exit status (1)