首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 分散式開發步步為贏 (14):WCF 安全程式設計核心概念總覽

     編輯:關於.NET

前言

WCF 安全機制橫跨傳輸層與訊息層,整合 Windows 整合驗證、X.509 憑證、WS-Security 標準與自訂擴展。本文系統梳理安全開發必備知識圖譜,為後續實作奠基。

0. 安全開發必備基礎知識

類別關鍵點
對稱加密DES、AES,單一金鑰加解密,效能高
非對稱加密RSA、ECC,公開/私鑰配對,適用金鑰交換與數位簽章
雜湊/簽章MD5、SHA1、SHA256,訊息完整性驗證
WS-SecuritySOAP 訊息層安全標準,WCF 核心互操作基礎
X.509 憑證綁定公開金鑰與身分資訊,CA 信任鏈、指紋、用途

參考延伸:《WSE3.0 構建 Web 服務安全》系列文章。

1. WCF 身分驗證機制

WCF 客戶端認證類型圖解

認證類型說明適用場景
None匿名,服務用憑證識別自身公開服務、HTTPS 加密傳輸
UserName帳密驗證,需服務憑證加密傳輸Internet 公開 API、自訂驗證邏輯
WindowsKerberos/NTLM,需 AD 網域企業內部網域環境
Certificate雙向憑證,雙方持有對方公開金鑰高安全性 B2B、雙向認證
IssuedTokenSTS 發行 SAML Token,支援聯盟身分跨組織單一登入、Identity Federation

2. 傳輸安全模式

WCF 安全模式對比

  • Transport:HTTPS、TCP+SSL、NamedPipe。點對點加密,效能佳,不支援中繼節點端對端安全。
  • Message:WS-Security,訊息層加密簽章,跨傳輸協定、端對端安全、支援豐富認證類型(含 IssuedToken),效能較低。
  • TransportWithMessageCredential:傳輸層加密 + 訊息層認證(Mixed)。
  • Both:雙層同時啟用,極高安全需求。

3. 繫結與安全模式對應表

繫結安全模式支援表

  • Net* 繫結預設 Transport;WS* 繫結預設 Message。
  • BasicHttpBinding 相容舊版 ASMX;WSHttpBinding 支援 WS-Security 1.1、WS-SecureConversation。

4. Transport 模式客戶端認證對應

繫結NoneWindowsUserNameCertificate
BasicHttpBinding✓(預設)✓✓✓
NetTcpBinding✓✓(預設)✗✓
WSHttpBinding✓✓(預設)✓✓

5. Message 模式客戶端認證對應

繫結NoneWindowsUserNameCertificateIssuedToken
WSHttpBinding✓✓(預設)✓✓✓
WSDualHttpBinding✓✓(預設)✓✓✓
NetTcpBinding✓✓(預設)✓✓✓

關鍵差異:Transport 不支援 IssuedToken,因其僅保護點對點傳輸,無法跨中繼節點傳遞 Token。

6. 總結

  1. 安全基礎概念(加密、簽章、憑證、WS-Security)是開發門檻,建議先補齊。
  2. WCF 繼承 WSE 3.0 安全模型,自訂驗證本質相同(重寫 Validate 方法)。
  3. WCF 安全通道負責訊息加解密簽章,適配不同繫結與驗證場景。
  4. 安全等級提升:Message 模式下 UserName、Certificate 等均強制要求服務憑證且需受信任,較舊技術門檻大增。

下篇將詳細講解 UserName 認證實作原理與代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved