整合式 Windows 驗證
作者:Mike Wasson
整合式Windows 驗證可讓使用者使用 Kerberos 或 NTLM 使用其 Windows 認證登入。 用戶端會在 Authorization 標頭中傳送認證。 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) 攻擊。 請參閱 防止跨網站偽造要求 (CSRF) 攻擊。