當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(摘要式)身份驗證。