整合式 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) 攻擊