小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

WCF安全體系結(jié)構(gòu)

 賢人好客 2010-05-17
作者:KidYang tags:WCF MS from from MSDN
安全體系結(jié)構(gòu)

本節(jié)說明可用于修改或擴(kuò)展 windows communication foundation (wcf) 安全組件的功能的各個擴(kuò)展點。若要了解這些擴(kuò)展點,必須了解總體 wcf 安全體系結(jié)構(gòu)。本主題從組件及其關(guān)系方面說明 wcf 安全體系結(jié)構(gòu)以及本節(jié)后面說明的擴(kuò)展點如何適應(yīng)總體體系結(jié)構(gòu)模型。

wcf 安全組件的范圍

wcf 安全性跨越 wcf 體系結(jié)構(gòu)中的多個組件。wcf 中安全性的主要目的是,為建立在 wcf 框架基礎(chǔ)之上的應(yīng)用程序提供完整性、保密性、身份驗證、授權(quán)和審核。wcf 體系結(jié)構(gòu)將這些功能拆分為以下部分:

  • 傳輸安全 - 負(fù)責(zé)提供消息保密性、數(shù)據(jù)完整性和通信方的身份驗證。
  • 授權(quán) - 負(fù)責(zé)為授權(quán)決策提供框架。
  • 審核 - 負(fù)責(zé)將安全相關(guān)事件記錄到審核日志中。

本文檔說明的安全模式和范圍

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

  • 傳輸。在客戶端和服務(wù)之間傳輸消息時使用的傳輸將提供所有三種通信安全功能。
  • 消息。僅在 soap 消息級別提供傳輸安全,這意味著直接在 xml 級別將安全應(yīng)用于 soap 消息。
  • 使用消息憑據(jù)的傳輸。在傳輸層和消息層上都執(zhí)行傳輸安全。傳輸層提供通信保密性、數(shù)據(jù)完整性和服務(wù)身份驗證。消息層提供客戶端身份驗證。

本文檔的其余部分著重介紹“消息”安全模式,但某些信息同樣適用于“使用消息憑據(jù)的傳輸”模式。具體而言,本文檔適用于客戶端身份驗證的部分也適用于“使用消息憑據(jù)的傳輸”模式,因為“使用消息憑據(jù)的傳輸”模式使用消息層執(zhí)行客戶端身份驗證的方式與“消息”模式相同。

有關(guān)“身份驗證”和“審核”組件的討論同樣適用于所有三種安全模式。因此,本文檔中說明的與這些組件相關(guān)的所有信息適用于所有支持的安全模式。

消息安全模式概念

ws-security 模式

“消息”安全模式的基礎(chǔ)是 ws-security 規(guī)范。ws-security 規(guī)范定義一個框架,該框架答應(yīng)對 soap 消息應(yīng)用安全。該規(guī)范指定了一種結(jié)合數(shù)字簽名和加密使用安全令牌來保護(hù) soap 消息并對其進(jìn)行身份驗證的消息安全模式。有關(guān)該規(guī)范的信息,請參見 web 服務(wù)安全 (ws-security)(可能為英文網(wǎng)頁)。

術(shù)語

安全令牌斷言聲明并可用于斷言身份驗證秘密或密鑰和安全標(biāo)識之間的綁定。

聲明是由實體所做的有關(guān)實體(例如名稱、標(biāo)識、組、密鑰或特權(quán))的聲明。作出聲明的實體稱為“聲明頒發(fā)者”;對其作出聲明的有關(guān)實體稱為“聲明主題”。

聲明頒發(fā)者可以通過使用其密鑰對安全令牌進(jìn)行簽名或加密來保證或認(rèn)可安全令牌中的聲明。這會在安全令牌中啟用聲明的身份驗證。

消息簽名用于驗證消息來源和完整性。消息簽名還可供消息創(chuàng)作者用于證實他們知道密鑰(通常來自第三方,用于確認(rèn)安全令牌中的聲明),因此會將消息創(chuàng)作者的標(biāo)識(以及由安全令牌表示的任何其他聲明)綁定到所創(chuàng)建的消息。

安全令牌

ws-security 定義了多種類型的安全令牌,并提供了一個可擴(kuò)展模型,答應(yīng)單獨定義其他的安全令牌類型。每個令牌類型定義均包含令牌的 xml 序列化。這答應(yīng)直接向消息添加令牌表示形式。

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

  • 用戶名令牌。
  • x.509 證書令牌。
  • kerberos 令牌。
  • saml 令牌。

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

  • signedsupporting
  • signedendorsing
  • signedencrypted
  • encryptedendorsing

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

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

通過此功能可以實現(xiàn)多個方案,如下所述:

  • 增量聲明發(fā)送。對服務(wù)執(zhí)行的所有操作可能都要求一組聲明存在,但是某些操作可能需要其他聲明。客戶端不對每項操作使用單獨頒發(fā)的令牌,而是獲得一個具有初始聲明集的已頒發(fā)令牌,并使用另一個已頒發(fā)的令牌(該令牌具有要調(diào)用的操作所需的其余聲明)。
  • 多因素身份驗證。在客戶端必須先收集多個頒發(fā)者頒發(fā)的令牌或具有不同聲明集的令牌,然后才能執(zhí)行操作時執(zhí)行。wcf 將頒發(fā)的令牌視為一個令牌類型,因此,在這種情況下會要求消息中能夠包含兩個已頒發(fā)的支持令牌。

請注重,不能以這種方式配置服務(wù):一個服務(wù)只能包含一個支持令牌。

有關(guān)更多信息,請參見 如何:使用相同類型的多個安全令牌。

ws-security 實現(xiàn)

由于 ws-security 為消息安全奠定了基礎(chǔ),因此 ws-security 的 wcf 實現(xiàn)是整個“消息”安全模式的基礎(chǔ)。若要擴(kuò)展“消息”安全模式功能,必須了解 ws-security 實現(xiàn)的工作方式。

wcf 中的 ws-security 實現(xiàn)處理以下操作:

  • 安全令牌與 soap 消息之間的序列化。
  • 安全令牌的身份驗證。
  • 消息簽名的應(yīng)用和驗證。
  • soap 消息的加密和解密。

wcf 擴(kuò)展點答應(yīng)自定義前兩項??梢愿默F(xiàn)有安全令牌的序列化或 wcf 安全對這些令牌進(jìn)行身份驗證的方式。也可能向 wcf 安全引入全新的安全令牌類型,包括序列化和身份驗證功能。

本節(jié)的以下主題演示如何使用 ws-security 實現(xiàn)擴(kuò)展點來自定義安全令牌功能。

授權(quán)

安全令牌會在傳入消息中進(jìn)行反序列化并進(jìn)行身份驗證。身份驗證過程會產(chǎn)生一組授權(quán)策略對象。每個對象均表示安全令牌數(shù)據(jù)的一部分。在授權(quán)階段將使用這些數(shù)據(jù)。

授權(quán)策略創(chuàng)建給定的安全令牌表示的一組聲明。然后,會將此聲明集提供給 serviceauthorizationmanagerauthorizationcontext 屬性內(nèi)的邏輯以便作出授權(quán)決策。

標(biāo)識

除了聲明外,wcf 還會創(chuàng)建 iidentity 接口的實現(xiàn),用于表示現(xiàn)有基礎(chǔ)結(jié)構(gòu)(使用 .net framework 安全模型創(chuàng)建)的調(diào)用方。此 iidentity 實例表示調(diào)用方的 windows 標(biāo)識(假如該安全令牌映射到 windows 帳戶)或包含調(diào)用方名稱的主標(biāo)識。這些標(biāo)識還可以使用 servicesecuritycontext 進(jìn)行訪問。(有關(guān)更多信息,請參見 如何:檢查安全上下文。)通過使用以下方法之一,可以自定義在 wcf 中創(chuàng)建標(biāo)識的方式:

僅當(dāng)使用用戶名/密碼身份驗證對調(diào)用方進(jìn)行身份驗證時,自定義成員資格提供程序才能工作。membershipprovider 驗證 用戶名/密碼對。假如為有效對,wcf 將在 membershipprovider 驗證后創(chuàng)建表示已進(jìn)行身份驗證的調(diào)用方的主標(biāo)識。

為便于與現(xiàn)有的 .net framework 安全基礎(chǔ)結(jié)構(gòu)集成,默認(rèn)情況下,wcf 將 currentprincipal 屬性設(shè)置為一個表示調(diào)用方的 iprincipal 實例。iprincipal 實例是基于所生成的 iidentity 中包含的信息創(chuàng)建的。

通過與 asp.net roleprovider 集成,可以進(jìn)一步擴(kuò)充 iidentity。roleprovider 會添加調(diào)用方所屬的角色集。授權(quán)邏輯將使用此信息做出訪問決策。

有關(guān) 標(biāo)識的更多信息,請參見服務(wù)標(biāo)識和身份驗證。

發(fā)送安全消息

下圖顯示使用“消息”安全模式時如何在客戶端保證消息的安全。該圖顯示了涉及的組件和它們之間的關(guān)系:

  1. 應(yīng)用程序代碼運(yùn)行并生成消息。
  2. 在令牌配置階段,附加客戶端憑據(jù)(如 x.509 證書)。在聯(lián)合身份驗證方案中,將聯(lián)系令牌頒發(fā)者以提供憑據(jù)。
  3. 使用這些憑據(jù)創(chuàng)建安全令牌。
  4. 在令牌身份驗證階段驗證令牌。
  5. 最后,序列化并發(fā)送安全令牌。
發(fā)送安全消息

接收安全消息

下圖顯示在從網(wǎng)絡(luò)提取安全消息并在接收端驗證這些安全消息時發(fā)生的過程:

  1. 在令牌身份驗證階段對安全令牌進(jìn)行反序列化和處理。假如需要,可以在此時使用 asp.net 成員資格提供程序提供用戶名和密碼。
  2. 進(jìn)行身份驗證后,提取授權(quán)策略。
  3. 在授權(quán)策略評估階段,評估授權(quán)策略并可將聲明添加到評估上下文中。此時也使用外部授權(quán)策略。這一步以及下一步是通過 serviceauthorizationmanager 的方法完成的。
  4. 在服務(wù)授權(quán)階段,基于由授權(quán)策略添加的聲明賦予正確的授權(quán)。這一步是通過 serviceauthorizationmanager 的方法完成的。
  5. 授權(quán)之后,假如調(diào)用方答應(yīng)且服務(wù)方法需要進(jìn)行調(diào)用方模擬,或?qū)Ψ?wù)授權(quán)行為設(shè)置了 impersonatecallerforalloperations 屬性,則會進(jìn)行調(diào)用方模擬。有關(guān)更多信息,請參見 wcf 的委派和模擬。
  6. 此時,wcf 將使用憑據(jù)生成 principalpermission。假如需要,可以在此時使用 asp.net 角色提供程序。
  7. 應(yīng)用程序代碼運(yùn)行。
接收安全消息

安全擴(kuò)展點概述

下圖顯示由 wcf 安全組件提供的擴(kuò)展點。該圖分為四個不同類別,具體取決于消息處理過程中到達(dá)擴(kuò)展點的時間。這些類別可映射到消息安全處理階段,如前兩節(jié)所述。該圖還顯示可以將現(xiàn)有基礎(chǔ)結(jié)構(gòu)技術(shù)與 wcf 安全相集成。

wcf 安全擴(kuò)展點

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多