WCF 安全

安全性是實現面向服務的應用程式的任何程式設計技術或框架的關鍵部分

WCF 是從頭開始構建的,用於在訊息和服務級別提供必要的安全基礎結構。

在以下部分中,你將瞭解如何在 WCF 中使用許多可用的安全設定,以及一些常見的部署方案。

對於訊息保護,WCF 支援兩種傳統的安全模型,即傳輸安全性和訊息安全性。

除了指定服務的通訊協議和編碼之外,繫結還允許你配置訊息保護設定和身份驗證模式。

WCF 中的預設安全設定:

繫結 設定
WsHttpBinding Windows 身份驗證的郵件安全性
basicHttpBinding 沒有安全感
WsFederationHttpBinding 聯合身份驗證的郵件安全性
NetTcpBinding Windows 身份驗證的傳輸安全性
NetNamedPipeBinding Windows 身份驗證的傳輸安全性
NetMsmqBinding Windows 身份驗證的傳輸安全性

考慮以下示例:

 <wsHttpBinding >
   <binding name=”UsernameBinding” >
    <security mode=”Message” >
      <message clientCredentialType=”UserName”/ >
    </security >
   </binding >
 </wsHttpBinding >

在此示例中,服務已配置了訊息安全性和使用者名稱安全性令牌配置檔案。繫結的其餘安全設定採用預設值。

安全模式

安全模式設定確定任何服務的兩個基本安全方面:訊息保護的安全模型和支援的客戶端身份驗證模式。

安全模式 描述
沒有 該服務適用於任何人,並且郵件在通過傳輸時不受保護。使用此模式時,該服務容易受到任何型別的攻擊。
運輸 使用傳輸安全模型對客戶端進行身份驗證並保護訊息。該模式提供了在運輸安全性中討論的優點和缺點。
資訊 使用訊息安全模型對客戶端進行身份驗證並保護訊息。此模式提供了訊息安全性中討論的優點和缺點。
同時使用傳輸安全性和訊息安全模型來驗證服務使用者並保護訊息。此模式僅受 MSMQ 繫結支援,並且在兩個級別都需要相同的憑據。
TransportWithMessageCredentials 郵件保護由傳輸提供,用於驗證服務使用者的憑據作為郵件的一部分傳播。此模式提供了使用訊息身份驗證中支援的任何憑據或令牌型別的靈活性,同時在傳輸級別執行服務身份驗證和訊息保護。
TransportCredentialOnly 使用傳輸安全性對客戶端進行身份驗證服務未經過身份驗證,並且郵件(包括客戶端憑據)在傳輸中以純文字形式顯示。這種安全模式可能是有用的,因為客戶端和服務之間傳輸的資訊型別不敏感,儘管憑證也會暴露給任何人。