共用方式為


使用模擬搭配傳輸安全性

模擬」(Impersonation) 是伺服應用程式識別用戶端的能力。對服務而言,驗證存取資源時使用模擬是很常見的。伺服器應用程式使用服務帳戶執行,但是伺服器在接受用戶端連線會模擬用戶端,藉此使用用戶端的認證執行存取檢查。傳輸安全性是一種用於傳遞認證與使用該認證保護通訊安全性的機制。本主題說明如何搭配模擬功能使用 Windows Communication Foundation (WCF) 中的傳輸安全性。如需詳細資訊使用訊息安全性模擬的詳細資訊,請參閱使用 WCF 的委派和模擬

五個模擬等級

傳輸安全性運用如下表所述的五種模擬等級。

模擬等級 描述

伺服器不嘗試模擬用戶端。

匿名

伺服器應用程式可以根據用戶端的認證執行存取檢查,但不會接收任何有關用戶端身分識別的資訊。模擬等級只對電腦上的通訊有意義,例如具名管道。使用 Anonymous 搭配遠端連線將模擬等級提升至識別。

識別

伺服器應用程式知道用戶端的身分,而且可以根據用戶端的認證執行存取驗證,但無法模擬用戶端。若權杖提供者未提供不同的模擬等級,則識別是 WCF 中搭配 SSPI 認證使用的預設模擬等級。

模擬

除了執行存取檢查外,伺服器應用程式可以存取做為用戶端的伺服器電腦上的資源。伺服器應用程式無法使用用戶端識別存取遠端電腦上的資源,因為模擬的權杖沒有網路認證。

委派

除了擁有與 Impersonate 相同的功能外,「委派」模擬等級也可以使用用戶端識別讓伺服器應用程式存取遠端電腦上的資訊,並且將識別傳遞到其他應用程式。

重要:伺服器網域帳戶必須標示為受信任,以便讓網域控制站上的委派使用這些額外的功能。這個模擬等級無法搭配標示為敏感的用戶端網域帳戶使用。

最常搭配傳輸安全性使用的等級是 IdentifyImpersonate。不建議將 NoneAnonymous 等級使用於一般用途,而且很多傳輸不支援使用這些等級進行驗證。請小心使用 Delegate 等級的強大功能,僅將委派憑證的使用權限提供給受信任的伺服器應用程式。

伺服器應用程式需要有 SeImpersonatePrivilege 權限,才能在 ImpersonateDelegate 等級使用模擬。如果應用程式在管理員群組或有服務 SID (網路服務、本機服務或本機系統) 的帳戶上執行,該應用程式預設為擁有此權限。伺服器不需要用戶端和伺服器的相互驗證。有些支援模擬的驗證配置 (例如 NTLM) 無法搭配相互驗證使用。

模擬的特定傳輸問題

在 WCF 的傳輸選擇會影響模擬的可能選擇。本節描述影響 WCF 中標準 HTTP 與具名管道的問題。自訂傳輸在支援模擬上有其限制。

具名管道傳輸

下列項目會與具名管道傳輸一併使用:

  • 命名管道傳輸僅供在本機電腦上使用。WCF 中的具名管道明確不允許跨電腦連接。

  • 具名管道無法搭配 ImpersonateDelegate 模擬等級使用。具名管道無法在這些模擬等級強制執行電腦保證。

如需詳細資訊具名管道的詳細資訊,請參閱選擇傳輸

HTTP 傳輸

了解 HTTP 驗證中所述,使用 HTTP 傳輸 (WSHttpBindingBasicHttpBinding) 的繫結支援數個驗證配置。支援的模擬等級視驗證配置而定。下列項目會與 HTTP 傳輸一併使用:

  • Anonymous 驗證配置會忽略模擬。

  • Basic 驗證配置僅支援 Delegate 等級。所有較低的模擬等級都會進行升級。

  • Digest 驗證配置僅支援 ImpersonateDelegate 等級。

  • 可直接選擇或透過交涉選擇的 NTLM 驗證配置僅支援本機電腦上的 Delegate 等級。

  • 只能夠透過交涉選擇的 Kerberos 驗證配置可以搭配任何支援的模擬等級使用。

如需詳細資訊 HTTP 傳輸的詳細資訊,請參閱選擇傳輸

另請參閱

工作

HOW TO:在服務上模擬用戶端

概念

使用 WCF 的委派和模擬
了解 HTTP 驗證

其他資源

授權