整合式 Windows 驗證
作者:Mike Wasson
整合式 Windows 驗證允許使用者使用其 Windows 認證透過 Kerberos 或 NTLM 登入。 用戶端會在 [授權] 標頭中傳送認證。 Windows 驗證最適合用於內部網路環境。 如需詳細資訊,請參閱 Windows 驗證。
優點 | 缺點 |
---|---|
內建於 IIS 中。 | 不建議用於網際網路應用程式。 |
不會在要求中傳送使用者認證。 | 用戶端需要 Kerberos 或 NTLM 支援。 |
如果用戶端電腦屬於網域 (例如內部網路應用程式),則使用者不需要輸入認證。 | 用戶端必須位於 Active Directory 網域中。 |
注意
如果您的應用程式託管於 Azure,而且您有內部部署 Active Directory 網域,請考慮將內部部署 AD 與 Azure Active Directory 建立同盟。 如此一來,使用者就可以使用其內部部署認證登入,但驗證是由 Azure AD 執行。 如需詳細資訊,請參閱 Azure 驗證。
若要建立使用整合式 Windows 驗證的應用程式,請在 MVC 4 專案精靈中選取 [內部網路應用程式] 範本。 此專案範本會將下列設定放在 Web.config 檔案中:
<system.web>
<authentication mode="Windows" />
</system.web>
在用戶端上,整合式 Windows 驗證可與支援交涉驗證配置的任何瀏覽器搭配運作,其中包括大部分的主要瀏覽器。 針對 .NET 用戶端應用程式,HttpClient 類別支援 Windows 驗證:
HttpClientHandler handler = new HttpClientHandler()
{
UseDefaultCredentials = true
};
HttpClient client = new HttpClient(handler);
Windows 驗證容易受到跨網站偽造要求 (CSRF) 攻擊的影響。 請參閱防止 Web API 中的跨網站偽造要求 (CSRF) 攻擊。