WCF安全體系結構 from MSDN

2022-03-05 19:16:29 字數 3579 閱讀 1211

安全體系結構

本節說明可用於修改或擴充套件 windows communication foundation (wcf) 安全元件的功能的各個擴充套件點。若要了解這些擴充套件點,必須了解總體 wcf 安全體系結構。本主題從元件及其關係方面說明 wcf 安全體系結構以及本節後面說明的擴充套件點如何適應總體體系結構模型。

wcf 安全性跨越 wcf 體系結構中的多個元件。wcf 中安全性的主要目的是,為建立在 wcf 框架基礎之上的應用程式提供完整性、保密性、身份驗證、授權和審核。wcf 體系結構將這些功能拆分為以下部分:

本文件說明的安全模式和範圍

傳輸安全可使用以下安全模式之一來執行:

本文件的其餘部分著重介紹「訊息」安全模式,但某些資訊同樣適用於「使用訊息憑據的傳輸」模式。具體而言,本文件適用於客戶端身份驗證的部分也適用於「使用訊息憑據的傳輸」模式,因為「使用訊息憑據的傳輸」模式使用訊息層執行客戶端身份驗證的方式與「訊息」模式相同。

ws-security 模式

「訊息」安全模式的基礎是 ws-security 規範。ws-security 規範定義乙個框架,該框架允許對 soap 訊息應用安全。該規範指定了一種結合數字簽名和加密使用安全令牌來保護 soap 訊息並對其進行身份驗證的訊息安全模式。有關該規範的資訊,請參見 web 服務安全 (ws-security)

(可能為英文網頁)。

術語安全令牌斷言宣告並可用於斷言身份驗證秘密或金鑰和安全標識之間的繫結。

宣告是由實體所做的有關實體(例如名稱、標識、組、金鑰或特權)的宣告。作出宣告的實體稱為「宣告頒發者」;對其作出宣告的有關實體稱為「宣告主題」。

宣告頒發者可以通過使用其金鑰對安全令牌進行簽名或加密來保證或認可安全令牌中的宣告。這會在安全令牌中啟用宣告的身份驗證。

訊息簽名用於驗證****和完整性。訊息簽名還可供訊息創作者用於證明他們知道金鑰(通常來自第三方,用於確認安全令牌中的宣告),因此會將訊息創作者的標識(以及由安全令牌表示的任何其他宣告)繫結到所建立的訊息。

安全令牌

ws-security 定義了多種型別的安全令牌,並提供了乙個可擴充套件模型,允許單獨定義其他的安全令牌型別。每個令牌型別定義均包含令牌的 xml 序列化。這允許直接向訊息新增令牌表示形式。

下面是 ws-security 中定義的一些安全令牌型別:

已定義四種令牌使用方式,附加到給定訊息的令牌只能屬於其中的乙個類別:

在 .net framework 3.0 中,客戶端訊息只能包含任何給定型別的乙個令牌,但是可以包含不同型別的令牌。

在 .net framework 3.5 中,客戶端訊息可以包含給定型別的多個令牌,也可以包含不同型別的令牌。

通過此功能可以實現多個方案,如下所述:

請注意,不能以這種方式配置服務:乙個服務只能包含乙個支援令牌。

有關更多資訊,請參見 如何:使用相同型別的多個安全令牌

。ws-security 實現

由於 ws-security 為訊息安全奠定了基礎,因此 ws-security 的 wcf 實現是整個「訊息」安全模式的基礎。若要擴充套件「訊息」安全模式功能,必須了解 ws-security 實現的工作方式。

wcf 中的 ws-security 實現處理以下操作:

wcf 擴充套件點允許自定義前兩項。可以更改現有安全令牌的序列化或 wcf 安全對這些令牌進行身份驗證的方式。也可能向 wcf 安全引入全新的安全令牌型別,包括序列化和身份驗證功能。

本節的以下主題演示如何使用 ws-security 實現擴充套件點來自定義安全令牌功能。

授權安全令牌會在傳入訊息中進行反序列化並進行身份驗證。身份驗證過程會產生一組授權策略物件。每個物件均表示安全令牌資料的一部分。在授權階段將使用這些資料。

授權策略建立給定的安全令牌表示的一組宣告。然後,會將此宣告集提供給 serviceauthorizationmanager

和 authorizationcontext

屬性內的邏輯以便作出授權決策。

標識除了宣告外,wcf 還會建立 iidentity

介面的實現,用於表示現有基礎結構(使用 .net framework 安全模型建立)的呼叫方。此iidentity例項表示呼叫方的 windows 標識(如果該安全令牌對映到 windows 帳戶)或包含呼叫方名稱的主標識。這些標識還可以使用 servicesecuritycontext

進行訪問。(有關更多資訊,請參見 如何:檢查安全上下文

。)通過使用以下方法之一,可以自定義在 wcf 中建立標識的方式:

僅當使用使用者名稱/密碼身份驗證對呼叫方進行身份驗證時,自定義成員資格提供程式才能工作。membershipprovider驗證 使用者名稱/密碼對。如果為有效對,wcf 將在membershipprovider驗證後建立表示已進行身份驗證的呼叫方的主標識。

為便於與現有的 .net framework 安全基礎結構整合,預設情況下,wcf 將 currentprincipal

屬性設定為乙個表示呼叫方的 iprincipal

例項。iprincipal例項是基於所生成的iidentity中包含的資訊建立的。

通過與 asp.net roleprovider

整合,可以進一步擴充iidentityroleprovider會新增呼叫方所屬的角色集。授權邏輯將使用此資訊做出訪問決策。

有關 標識的更多資訊,請參見服務標識和身份驗證

。下圖顯示使用「訊息」安全模式時如何在客戶端保證訊息的安全。該圖顯示了涉及的元件和它們之間的關係:

應用程式**執行並生成訊息。

在令牌配置階段,附加客戶端憑據(如 x.509 證書)。在聯合身份驗證方案中,將聯絡令牌頒發者以提供憑據。

使用這些憑據建立安全令牌。

在令牌身份驗證階段驗證令牌。

最後,序列化並傳送安全令牌。

下圖顯示在從網路提取安全訊息並在接收端驗證這些安全訊息時發生的過程:

在令牌身份驗證階段對安全令牌進行反序列化和處理。如果需要,可以在此時使用 asp.net 成員資格提供程式提供使用者名稱和密碼。

進行身份驗證後,提取授權策略。

在授權策略評估階段,評估授權策略並可將宣告新增到評估上下文中。此時也使用外部授權策略。這一步以及下一步是通過serviceauthorizationmanager的方法完成的。

在服務授權階段,基於由授權策略新增的宣告賦予正確的授權。這一步是通過serviceauthorizationmanager的方法完成的。

授權之後,如果呼叫方允許且服務方法需要進行呼叫方模擬,或對服務授權行為設定了 impersonatecallerforalloperations

屬性,則會進行呼叫方模擬。有關更多資訊,請參見 wcf 的委派和模擬

。此時,wcf 將使用憑據生成 principalpermission

。如果需要,可以在此時使用 asp.net 角色提供程式。

應用程式**執行。

下圖顯示由 wcf 安全元件提供的擴充套件點。該圖分為四個不同類別,具體取決於訊息處理過程中到達擴充套件點的時間。這些類別可對映到訊息安全處理階段,如前兩節所述。該圖還顯示可以將現有基礎結構技術與 wcf 安全相整合。

OSI安全體系結構

關鍵字 osi 最近研究安全技術,終於發現這個由iso指定的osi原來是這麼的全面!osi iso制定了開發系統互聯參考模型 open system interconnection reference model,osi模型 作為理解和實現網路安全的基礎。1.五大類安全服務 五類安全服務包括認證 鑑...

OSI安全體系結構

最近研究安全技術,終於發現這個由iso指定的osi原來是這麼的全面!osi iso制定了開發系統互聯參考模型 open system interconnection reference model,osi模型 作為理解和實現網路安全的基礎。1.五大類安全服務 五類安全服務包括認證 鑑別 服務 訪問控...

OSI安全體系結構

目錄 osi安全體系結構 資料鏈路層 點到點通道協議 pptp 以及第二層通道協議l2tp 網路層 ip安全協議 ipsec 傳輸層 安全套接字層 ssl 和傳輸層安全協議tls 會話層 socks 技術 應用層 應用程式 建立七層模型主要是為解決異種網路互連時所遇到的相容性問題。它的最大優點是將服...