<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    beauty_beast

    上善若水 厚德載物

    (轉載)WebLogic Server 之安全(架構篇)

    Posted on 2006-10-11 10:50 柳隨風 閱讀(1755) 評論(0)  編輯  收藏 所屬分類: AppServer

    WebLogic Server 之安全(架構篇)

    本文來自http://www.chinaitpower.com/2005Nov/2005-11-23/209281.html
    安全的變化可是WebLogic Server近期版本(7.0,8.1)最大的變化之一,全新的安全體系架構,既易于客戶化安全解決方案的變化,又能實現細節和應用基礎架構分離,使安全更易于部署,管理,維護和根據需求變化.同時也是支持最新的J2EE的標準和規范。本文試圖從架構方面詳細講解WebLogic Server 7.0的安全體系及其相關細節,希望讀者能對其機制有個框架層次和深度上的了解,文檔參照了WebLogic Server 7.0的英文版手冊,表述不當的地方,希望大家一起探討。BTW,新出的WebLogic Server 8.1的安全架構完全和WebLogic Server 7.0一致。

    WebLogic Security的基本特征

    開放,靈活的架構。
    1. 基于標準,易于理解的設計
    2. 基于WebLogic Server應用的端對端的安全(從主機到瀏覽器)
    3. 能與已存在的安全規則(Scheme)進行集成,從而有利于保護企業投資。
    4. 安全的工具集成到一個靈活,統一架構的系統以便于在企業級進行安全管理
    5. 通過將公司的業務規則和安全policies的對應,能方便實現根據業務需求客戶化應用安全
    6. 易于Security Policy的更新。
    7. 易于客戶化安全解決方案的變化。
    8. 因為具有模塊化的架構,因此安全架構能根據不同公司的特殊需求不斷變化
    9. 能夠配置多個Security Provider
    10. 安全實現細節和應用基礎架構分離,使安全更易于部署,管理,維護和根據需求變化
    11. 當前的WebLogic Security providers提供了和應用無關的可行的安全規則。(Scheme)
    12. 使用WebLogic custom security provider進行客戶化工作
    13. 通過管理控制臺進行統一的安全規則(Rule),Security Policy和Security Provider的統一管理
    14. 對最新的J2EE安全技術的支持,包括JAAS(Java Authentication and Authorization Service),JSSE(java Secure Sockets Extensions),and JCE(java Cryptography Extensions)


    易于使用:對最終用戶而言,只需要登陸一次,就能訪問所有資源(SSO),(限制在WebLogic Domain)
    可管理:提供WebLogic security Provider,當前的Provider支持所有需要的安全功能,Security Data存放在WebLogic Server提供的LDAP Server中
    客戶化: WebLogic Security API,JAAS,JSSE custom security provider through SSPIs(WebLogic Server Security Service Provider Interfaces)

    WebLogic Server Security從6.x到7.0的變化:

    WebLogic Server 6.x WebLogic Server70
    安全的API 非常多的已存在API不推薦使用,BEA建議使用基于J2EE規范的標準接口實現應用
    JAAS認證 JAAS認證增強已提供對于IIOP和t3客戶端訪問的LoginModules
    審計 無需實現WebLogic.security.Audit接口已在你的應用中加入審計功能,WebLogic Auditing provider已提供。
    定義weblogic.xml和weblogic-ejb-jar.xml和weblogic-ra.xml中的安全需求 增強可以通過管理控制臺定制
    系統密碼 沒有指定的系統賬號
    ACL ACL已經不推薦使用,并由security policy代替
    用戶和組 仍然存在,并通過security policy將weblogic resouce賦予user,group或security role
    6.x安全Realm 不推薦使用,但仍存在Realm Adapter當你進行安全的轉換時
    支持多個Security Provider
    SSL 支持JSSE標準和TLS v1(Transport Layer Security)協議
    支持J2EE JKS keystores

    安全基礎
    Audit(審計):
    提供對操作請求和請求輸出的搜集,存儲和發布,提供了對計算機行為的電子紀錄。
    在Security operations happens的前后,WebLogic調用Auditing Provider對特殊事件(基于audit criteria or serverity level)進行紀錄同時寫入LDAP Server,數據庫或文件系統中。

    Authentication(認證)
    通過使用username/password組合來判斷用戶是否是一個系統的合法用戶,主要回答"Who Are You?"的問題。

    1. Principal & Subject
    Principal認證通過后賦予用戶或組的身份(Identity)Subject JAAS 要求通過subject,Container知道客戶信息,包括pricipals
    ·Relationships Among Users, Groups, Principals and Subjects



    成功的認證后,principal簽名同時存在一個subject中,principal validation provider簽名,并且Authentication Provider的LoginModule存放pricipal到subject中,當caller試圖訪問存在subject中的pricipal時,principal validation provider認證pricipal自簽名后沒有改變,然后principal回給caller.

    2. JAAS
    JAAS實現了java版本的PAM模塊,允許應用和后層采用的認證技術,同時允許再不更改應用的情況下采用更新的或者變化了的安全認證技術。
    WebLogic sever使用JAAS在胖客戶端認證和內部認證,因此,只有客戶化Authentication Provider的開發者和遠程胖客戶端需要直接使用JAAS, Thin 客戶端和在container內的胖客戶端(EJB throgh servelt)不需要直接使用JAAS.

    ·JAAS LoginModules
    認證用戶,發布Subject.不用于perimeter authentication

    ·JAAS Control Flags
    Multiple Authentication provider configured
    REQUIRED : 必須成功,如果失敗,authentication繼續其他的LoginModule(當前)
    REQUISITE:必須成功,成功繼續,不成功,將返回應用。
    SUFFICIENT:不需要成功,如果成功,返回應用,如果失敗,繼續LoginModule List
    OPTIONAL:允許成功或失敗,但必須通過一個LoginModule

    ·CallBackHandlers
    CallbackHandler 是為將參數或復雜對象傳入方法中的一種高度靈活的規范。包括NameCallback:return username
    PasswordCallback:return password
    TextInputCallback: return 用戶在Login form中輸入的數據。
    Security service將不同的Callback傳入CallbackHandler要求獲取不同類型的信息,CallbackHandler的實現決定如何根據不同的Callback獲取和顯示。

    ·Mutual Authentication
    客戶端和服務端都需要相互認證,WebLogic Server支持2-way SSL

    ·Identity Assertion Providers and LoginModules
    當和LoginModules一起使用時,Identity Assertion provider支持Sigle-sign-on,LoginModule包含:

    → 客戶化開發的Authentication Provider
    → BEA 開發的WebLogic Authentication Provider
    → 第三方的Authentication Provider

    ·Identity Assertion and Tokens
    Identity Assertion Provider支持用戶名的mapping,對應到weblogic server中的一個正確的token,能夠開發Identitty Assertion Provider已支持多種token類型,但 只有一種為Active狀態,同時只有一種Identity Assertion provider最終執行這一mapping的操作。

    Authentication類型
    WebLogic authentication provider支持的認證類型有:
    用戶名/口令認證:SSL,HTTPS
    CA(Certification Authentication):當SSL或HTTPS客戶請求發起時,WebLogic Server回應客戶一個數字認證(digital certification),客戶證實這個數字認證從而建立SSL聯結,數字認證是由仍證機構CA發放。
    Perimeter Authentication
    主要用于應用服務器外的遠程用戶的認證過程
    遠程用戶指定assert identity和相應得材料來完成。
    Authentication agent能采用各種格式,VPN,Firewall,企業級認證服務。
    Authentication agent處理認證過程同時導致artifact和token產生。Identity assertion的概聯使weblogic server能使用perimeter authentication schemes提供的認證機制,比如Checkpoint's OPSEC,the emerging Security Assertion Markup Language(SAML), enhancement of Common Secure Interoperability(CSI)v2完成功能。



    3. Authorization

    Authorization在用戶和weblogic 控制的資源中交互的進程,基于用戶身份或其他信息。
    Authorization主要回答的問題是"What can you access"

    WebLogic resource:包含
    管理資源
    應用資源
    COM資源
    EIS資源
    EJB
    JDBC
    JMS
    JNDI
    Server資源
    URL資源
    Web Service資源

    ·Security Policy
    代替ACL,主要回答的問題是:Who have access to WebLogic resource?
    當你將weblogic resource和用戶,組,security role相關聯時,Security Policy產生。
    Security Policy存儲在Authorization Provider的數據庫中,當前的WebLogic Authorization provider存在LDAP Server中
    BEA推薦在security role上建立security policy.

    ·ContextHandlers
    從resource container中獲取context和有關container的信息,為security provider做出訪問或權限mapping決定的提供信息。

    ·Access Decisions
    回答了"is access allowed?"的問題.Access Decision結果為PERMIT,DENY,ABSTAIN

    ·Adjudication
    解決了當多個Authorization Provider提供授權時產生的沖突問題。Adjudication Server權衡多個Access Decision的結果,并且決定最終permit或者deny的結果。當唯一的Authorization provider返回結果為ABSTAIN時,Adjudication provider決定怎樣處理。

    ·SSL
    當前WebLogic Server支持1-way方式的SSL認證,使用管理控制臺,能夠配置2-way的SSL.
    需要配置privite key,包括public key的數字證書(digital certificate),和至少由一個CA認證的數字證書(digital certificate),有可能需要安裝root trusted CA's digital certificate.

    為獲取數字證書,自己生成public key,private key和認證簽名請求(CSR)(包含public key),同時將CSR發到認證機構已得到簽名的證書。
    Public key存放在WebLogic domain目錄下的文件系統中
    Private key和通過認證的證書能存放在文件系統或通過WebLogic keystore provider提供的keystore中。

    SSL提供
    1) 應用間溝通的機制便于認證雙方的身份
    2) 應用間交換數據的加密。

    Server authentication:WebLogic Server使用經過CA簽名的數字證書,向客戶認證。當客戶不需要向Server證明自己的數字證書時,這種聯接的方式叫1-way SSL認證。
    Client Identity Verification:可選的,客戶必須向WebLogic Server出示數字證書,WebLogic Server證實數字證書由CA發放同時建立SSL聯結,這種方式叫2-way SSL認證。
    Confidentiality所有客戶的請求和Server的相應在網絡上的傳輸都加密。
    數據完整性:客戶端和服務端傳輸的數據受保護。

    SSL Tunneling
    SSL是在基于IP協議上Tuneled.意味著每個SSL紀錄被封裝同時有使它在其他協議上發送的header來包裝。

    One-way/Two-way SSL認證
    在One-way情況下,客戶端通過兩種方式檢查數字認證
    1. 檢查數字認證在它的可信任認證機構中(CA)
    2. 檢查認證中的主機名和Server一致。

    Domestic SSL和Exportable SSL
    Exportable SSL支持512位證書和40-或50-位數據加密(標準支持)
    Domestic SSL支持768位和 1024位證書和128位數據加密(Ask BEA Sales)

    Security Realm(安全域)
    Security Realm 包含整套保護WebLogic資源的機制,由一系列配置好的Security Provider,用戶,組,security role,和security policy構成



    ·用戶
    當用戶訪問WebLogic Server時,通過JAAS LoginModule到認證提供者,如果通過認證,weblogic server通過一個線程將principal和用戶相聯,在用戶線程開始執行代碼前,WebLogic Server檢查WebLogic resource的policy和principal以確認用戶取得相應的要求的權限。

    當定義一個用戶時,WebLogic 對用戶的密碼進行加密,同時當WebLogic接收到客戶請求時,客戶端請求的密碼被hash加密,同時和以存在的加密密碼比較以判斷是否符合。

    ·組
    組是用戶的邏輯組合。在一個Security Realm中,所有的用戶和組必須唯一。

    ·Security Role
    動態賦予用戶和組,根據用戶名,組的成員或一天中的某個時間。
    能在一個WebLogic server的域中,針對單個應用定義資源。

    在weblogic 6.x中,security role只能賦予web application 和 EJB, 在 70版本中,用戶的security role能擴展到所有的WebLogic資源。

    ·Security Policy
    Policy是WebLogic資源和用戶,組,和Security Role的關聯。用以保護WebLogic資源不收不被授權的用戶訪問。它代替了6.x中用的ACL

    ·Security Provider
    對應用提供安全服務的模塊,用以保護WebLogic資源,客戶能夠直接使用WebLogic Server直接提供的security provider,也能購買第三方的產品進行集成,或者開發自己的security provider.

    Security Provider數據庫
    Security Provider數據庫包含用戶,組,role和policy,以及有些安全提供者使用的密碼。比如Authentication provider要求用戶和組的信息。Authorization provider要求安全policy方面的信息,Role Mapping Provider要求安全Role方面的信息,Credential Mapping provider要求resource Adapter用于聯結后臺的EIS系統的密碼信息。這些信息都存放在數據庫中。

    Security provider的數據庫在遞一次使用security provider時候被初始化,所做的工作是
    當WebLogic實例重起。
    當一個security provider的Mbean被調用。

    當你在一個security realm中配置了多個security provider,那么這些security provider將是用同一個security provider數據庫。當你在不同的security realm中配置兩個security provider或兩個相同的security provider,他們將使用不同的provider database.,在一個時間只有一個security Realm處在激活狀態。

    ·Embedded LDAP Server
    Embedded LDAP Server被當前的WebLogic security provider使用作為數據庫存儲用戶,組,role和policy. 是一個完整的LDAP Server,支持的操作有:
    在LDAP Server中訪問和修改
    使用LDAP browser導入或導出安全的數據
    被WebLogic security provider讀寫訪問。
    WebLogic Server不支持在Embedded LDAP Server中加入屬性(Attribute)

    WebLogic Security Provider Embedded LDAP Server Usage
    Authentication Stores user and group information.
    Identity Assertion Stores user and group information.
    Authorization Stores security roles and security policies.
    Adjudication None.
    Role Mapping Supports dynamic role associations by obtaining a computed set of roles granted to a requestor for a given WebLogic resource.
    Auditing None.
    Credential Mapping Stores Username-Password credential mapping information.

    ·Security Provider的類型
    Authentication Provider
    主要用于:
    用戶名/密碼的認證
    直接和WebLogic Server基于證書的認證
    通過外部的web server基于HTTP證書的認證代理

    Identity Assertion Provider主要用于處理基于perimeter的認證和多個安全另牌(token)類型和協議。

    在安全域中必須至少有一個Authentication provider,同時你可以配置多個Authentication Provider,意味著你有多個LoginModules,每個處理不同的認證。管理員配置不同的provider以便于當用戶登陸系統時多個LoginModules怎樣被調用。
    Identity Assertion Provider
    使用客戶提供的可能存在于請求外的Token識別客戶的身份。

    WebLogic Security Service Architecture(架構)

    Security Framwork



    security framework提供的應用API被security和應用開發者定義安全服務使用,同時做為weblogic Container(Web和EJB),資源 Container和安全提供者間的中間層。

    下面詳細描述各層間的交互

    ·認證過程

    當用戶通過username/passwd組和登陸系統時,WebLogic建立信任同時對于每個JAAS請求回送包含principal的subject。

    通過認證后,一個authentication context建立。


    ·Identity Assertion Process


    主要用于perimeter authentication過程,當使用perimeter authentication時,外部系統傳入token給Identity Assertion Provider.如果通過,Identity Assertion provider將token對應到相應的username,并將回送username到weblogic server,然后由WebLogic Server將username送回到JAAS的CallbackHandler并傳遞到每個配置的Authentication Provider的LoginModule模塊,最后LoginModule能產生包含正確principal的Subject.

    ·Principal Validation Process



    WebLogic將subject傳遞給principal validation Provider,后者將對principal進行簽名并通過WebLogic Server把他回送客戶的應用。以后principal validation provider將用來證明經過簽名的subject中的principal沒有被別人改過。


    Authorization process



    Authenorization process最初由用戶或系統要求使用WebLogic Server資源時觸發。Resource Container處理被請求的資源。 Resource Container調用WebLogic Security Framwork同時傳遞給它相應的請求subject和請求resource的信息。WebLogic framework調用配置的role mapping provider,同時將傳遞的信息轉換成相應的格式,由Role Mapping provider回送role的列表給WebLogic security framework, Authorization provider決定subject是否有訪問相關資源的權限,如果配有多個Authorization provider,WebLogic security framework決定任何有沖突的訪問判斷傳遞給Adjudication Provider,最后由Adjudication Provider決定最終的訪問許可。

    ·Role Mapping Process



    WebLogic security framework調用每個role mapping provider以得到請求的role list,如果security policy指定請求賦予相應的role,role就被加入到subject可用的role list中,同時role list 返回給WebLogic security framwork做為下一步訪問控制的判斷。

    ·Auditing Process



    Authentication Provider除了提供認證服務外,需要發送audit事件,初始化AuditEvent對象(包含audit的event類型和audit的級別),Authentication Provider隨后調用Audit Provider,同時傳遞AuditEvent對象,當AuditEvent和Auditing Provider配置的需要Audit的信息相同時,將被記錄到文件系統,數據庫或其他存儲介質中。

    ·Credential Mapping Process



    最初由應用組件(包括jsp,ejb,resource adapter)訪問EIS系統(包括Oracle,SQL Server或其他)調用 WebLogic security framework時引發。應用組件傳遞subject(who),weblogic resource(what)和需要的credential。WebLogic security framework將請求傳遞給credential mapping provider,credential mapping provider處理請求,并將數據庫中的credential回送weblogic security framework,最后將credential返回給組件層,組件層使用credential以訪問EIS系統。

    ·weblogic security provider

    缺省自帶的security provider,如果不能滿足你的需求,可以自己開發客戶化的security provider.
    → 從weblogic.security.spi包中實現正確的SSPIs(security service provider interface)以生成security provider.
    → 建立Mbean的定義文件(MDF),使用Weblogic MbeanMaker工具生成Mbean類型。

    weblogic authentication provider

    代替了6.xFile realm的功能,支持用戶名/密碼認證,利用embedded LDAP Server存儲用戶和組的信息。

    支持LDAP Authentication訪問外部的LDAP 存儲(Open LDAP,Netscape iPlanet,Microsoft Active Directory,Novell NDS)

    WebLogic Identity Assertion Provider

    支持X.509認證和CSIv2(CORBA Common Secure Interoperability version 2)身份認證。
    WebLogic Identity Assertion provider驗證token 的類型,然后將X.509數字認證和x.501的單一的名字和WebLogic 的用戶名相對應。同樣指定一信任的客戶principal列表便于CSIv2的身份確認。統配符*用于指定所有的信任的principal.如果客戶沒有列入到信任的principal中,CSIv2 Identity Assertion將失敗。
    支持的token類型有

    → AU_TYPE -- WebLogic authenticationdUser
    → X509_TYPE X.509客戶端
    → CSI_PRINCIPAL_TYPE CSIV2 principal name
    → CSI_ANONYMOUS_TYPE CSIV2 anonymous identity
    CSI_X509_CERTCHAIN_TYPE CSIv2 X.509 certificate chain identity
    → CSI_DISTINGUISHED_NAME_TYPE CSIv2 distinguished name identity

    WebLogic principal validation provider
    WebLogic authorization provider
    WebLogic adjudication provider
    WebLogic role mapping provider
    ·WebLogic auditing provider
    WebLogic credential mapping provider
    以上provider功能在前面已經做了基本介紹。在此省略。

    ·Weblogic keystore provider
    使用sun公司sdk提供的keystore實現,利用標準的JKS keystore類型,將keystore做為文件(每臺機一個)來保存。有兩種keystore 文件
    → 一個文件保存CA認證(CA certificates)
    → 另一個文件保存server的private key

    ·WebLogic realm adapter provider
    主要用來提供和6.x安全域的兼容。Realm Adapter提供
    Authentication(include Identity Assertion Provider)
    Authorization
    Auditing
    Adjudication

    僅僅用于升級且不建議使用。

    ?作者簡介
    聶健是(dev2dev ID: ericnie) Horizon Software Ltd. 技術顧問
    主站蜘蛛池模板: 亚洲情a成黄在线观看| 2015日韩永久免费视频播放 | 亚洲成av人片天堂网无码】| 亚洲免费日韩无码系列| 午夜dj免费在线观看| 亚洲精品美女在线观看| 3344在线看片免费| 91麻豆精品国产自产在线观看亚洲| 亚洲国产欧洲综合997久久| 无码国产精品一区二区免费虚拟VR| 亚洲精品成人片在线播放 | 国产一级a毛一级a看免费人娇| 全免费一级午夜毛片| 亚洲欧美成aⅴ人在线观看| 国产成人免费午夜在线观看| 中文字幕亚洲色图| 69视频免费在线观看| 亚洲中文久久精品无码1| 黄页网站免费观看| 亚洲av无码成人精品国产| 免费看大黄高清网站视频在线| 亚洲经典千人经典日产| 国产zzjjzzjj视频全免费| 成人免费视频一区二区| 亚洲无码精品浪潮| 亚洲欧洲另类春色校园小说| 国产日韩精品无码区免费专区国产 | 亚洲福利视频一区二区三区| 美女网站免费福利视频| 美女视频黄a视频全免费网站色| 亚洲AⅤ视频一区二区三区| 精品多毛少妇人妻AV免费久久| 久久精品亚洲视频| 国产在线国偷精品产拍免费| 黄色大片免费网站| 久久亚洲春色中文字幕久久久 | 久久久久亚洲AV成人无码| 最近中文字幕mv免费高清电影| 免费夜色污私人影院网站电影| 亚洲国产综合专区在线电影| 国产免费AV片无码永久免费|