人人IT網

人人IT網

當前位置: 主頁 > 服務器軟件 > Websphere >

WSRR Studio V8.0 應用系列,第 1 部分: 使用 Studio 實現 WSRR 訪問權限配置

時間:2012-10-18 18:03來源:Internet 作者:Internet 點擊:
引言 IBM WebSphere Service Registry and Repository(以下簡稱 WSRR)是 IBM 推出的 SOA 領域裏關鍵的企業級產品,WSRR V8.0 是這

引言

IBM WebSphere Service Registry and Repository(以下簡稱 WSRR)是 IBM 推出的 SOA 領域裏關鍵的企業級產品,WSRR V8.0 是這一產品最新發布的版本。簡單來說,它是一個用於存儲、訪問、管理、治理服務信息(一般为服務元數據)的系統。在一個成功的 SOA 實施過程當中,它被用於管理和治理可重用的服務,需要訪問服務的其他產品可以通過查詢 WSRR 得到所需要的服務地址,從而實現動態的路由。

WSRR Studio(以下簡稱 Studio)是一款基於 Eclipse 開發的工具,它使終端用戶可以方便的通過基於 Eclipse 的環境來配置 WSRR,從而使复雜的配置文件能夠以可視化的向導方式進行靈活的編輯。

本系列文章將結合具體的客戶應用案例來說明如何通過 Studio 來實現 WSRR V8.0 的快速配置,在了解 WSRR 產品特點的基礎上,更多的了解一些具體的使用技巧。

本系列文章將包括如下五個部分:

  • WSRR Studio V8.0 應用系列, 第 1 部分:使用 Studio 實現 WSRR 訪問權限配置:介紹如何通過 Studio 來快速修改 WSRR 訪問權限定義文件。
  • WSRR Studio V8.0 應用系列, 第 2 部分:使用 Studio 實現 WSRR 生命周期管理:介紹如何通過 Studio 創建服務生命周期並對其實現生命周期的管理。
  • WSRR Studio V8.0 應用系列, 第 3 部分:使用 Studio 生成 WSRR 報表: 介紹如何通過 Studio 來定義、創建報表,並在 WSRR 服務器上展示。
  • WSRR Studio V8.0 應用系列, 第 4 部分:使用 Studio 實現 WSRR 多語言支持:介紹如何在 Studio 中定義多語言文件,使 WSRR 獲得多語言支持,從而方便世界各國的 WSRR 開發者和使用者。
  • WSRR Studio V8.0 應用系列, 第 5 部分:使用 Studio 定制 WSRR 用戶界面 : 介紹如何使用 Studio 對 WSRR 的用戶界面進行個性化的定制。

本文为本系列的第一部分,向您介紹了如何使用 WSRR Studio V8.0 進行訪問權限的相關配置,为不同的用戶提供針對不同對象的訪問權限,實現 WSRR 細粒度的訪問控制。


WSRR V8.0 訪問權限控制介紹

WSRR 是基於 WebSphere Application Server(WAS) 的安全機制,保證只有授權的用戶才能訪問特定的資源。但這只能支持粗粒度的訪問控制。這部分內容在本文的参考文獻中有相關的詳細介紹,我們這裏就不再進行贅述。 對於如何限定用戶對某一對象進行細粒度的訪問控制就需要結合 WSRR 本身的訪問控制機制,而且可以通過 Studio 可視化的訪問控制編輯器快速便捷的修改 WSRR 訪問控制定義文件。

WSRR 訪問控制定義文件

WSRR 訪問控制相關信息是基於 XACML 定義的,XACML(eXtensible Access Control Markup Language, 可擴展的訪問控制標記語言 ) 是一個通用的訪問控制定義語言。在一個 WSRR 配置文件(WSRR Configuration Profile)中,訪問控制定義文件位於文件夾 XACML 下:

  • SrrAuthzRoleMappingXacml.xml: 用於記錄所創建的角色定義
  • SrrAuthzCheckedPolicyXacml.xml: 用於記錄所創建的權限定義

WSRR 的運行需要裝載預先定制的配置文件(Profile),配置文件分为兩種基本的類型:基本配置文件(Basic Profile)和加強治理配置文件(Governance Enablement Profile)。

基本配置文件中,只定義了兩種角色 WSRRAdmin 和 WSRRUser,以及为兩種角色所定義的權限。

加強治理配置文件中,定義了 Business、Development、Operations、SOAGovernance、WSRRAdmin 和 WSRRUser 共六種角色以及相關定義的權限。

WSRR 服務器上訪問權限的配置

在 WSRR 服務器中打開配置視圖,然後在上面的工具欄或者左側的導航樹中 ( 圖 1 所示 ) 定位到 Active Profile -> Access Control


圖 1. 定位到訪問控制配置頁面
圖 1 定位到訪問控制配置頁面

點擊 Permission Definitions 就可以瀏覽具體的權限定義:


圖 2. 管理權限頁面
圖 2 管理權限頁面

從圖 2 中,我們可以看到預定義的權限詳細信息。這裏具體的含義就不再詳細介紹,因为在 WSRR V8.0 裏我們不再需要在頁面上對權限定義 XPATH 進行手動編輯,而是通過 Studio 進行簡單方便的向導編輯。下面我就來了解一些如何通過 Studio 來進行訪問權限定義文件的編輯。


WSRR Studio V8.0 訪問控制編輯器

在 Studio V8.0 中提供了訪問控制編輯器,用戶可以通過向導的方式對訪問權限進行編輯。

打開訪問控制編輯器

在 Studio V8.0 中,新建一個加強治理配置工程 GEP80,選中這個工程,定位到 Tool -> Access Control Editor,如圖 3 所示


圖 3. 工具欄中打開訪問控制編輯器
圖 3 工具欄中打開訪問控制編輯器

訪問控制編輯器就會打開,如圖 4 所示:


圖 4. 訪問控制編輯器
圖 4 訪問控制編輯器

訪問控制編輯器功能介紹

這個編輯器裏共分为三個頁面:

  • 第一個頁面(Role to Permission Mapping)是關於角色和權限的匹配:用戶創建了角色和權限之後,在這個界面勾選從而確定該角色是否被賦予相關的權限。
  • 第二個頁面(Roles)是編輯角色:用戶可以創建相關的角色。
  • 第三個頁面(Permissions)是編輯權限:用戶可以根據向導創建權限。

現在我們首先來創建一個角色:在訪問權限控制器裏點擊 Roles 進入第二個頁面,點擊 New


圖 5. 創建角色
圖 5 創建角色

輸入角色名稱 TestRole,然後點擊 OK。角色就會被創建並顯示在角色列表裏。然後我們再來創建一個權限:


圖 6. 創建權限-Action 列表
圖 6 創建權限-Action 列表

圖 6 中 Action 列表表示針對什麼操作進行權限驗證,他們分別是:

  • Retrieve: 對用戶獲取對象時進行權限驗證
  • Delete:對用戶刪除對象時進行權限驗證
  • Create:對用戶創建對象時進行權限驗證
  • Update:對用戶更新對象時進行權限驗證
  • Transition:對用戶轉換治理生命周期狀態時進行權限驗證 
  • Manage Governance:對用戶启動或終止治理時進行權限驗證

圖 7. 創建權限-目標對象(Target)和分類系統(Classifications)
圖 7 創建權限-目標對象(Target)和分類系統(Classifications)

圖 7 中,可以針對目標對象(Target)和分類系統(Classifications)進行設置。

目標對象表示針對這裏所設定的對象進行驗證,分为三個部分:

  • All Object Types:用戶對所有業務對象進行操作時都進行驗證
  • SDO Types:對 WSRR 中預定義的對象(如 WSDL、XSD、Base Model …)操作時進行驗證
  • Business Model Class:對 WSRR 中預定義的和用戶自定義的業務對象操作時進行驗證

分類系統中,用戶可以對預定義的和用戶自定義的分類系統進行設置。

當用戶對所有以上設置完成之後,就可以通過點擊 Next 進入到下一頁中對所轉換的 XPath 進行檢查。當點擊 Finish 之後,這個新的權限就創建成功了。


業務實例

在這個業務實例裏,我將展示如何使用 Studio 創建一個業務模型(CustomizedService),針對這個業務模型創建一個權限(UpdateService)和角色(UpdateServiceRole),並賦予該角色相關的權限。最後通過 Studio 部署到 WSRR 服務器上,看看 WSRR 是怎样限制其他角色對這個服務進行更新的。

Studio 建模

首先我們要打開 Studio,創建業務模型(CustomizedService)的具體步驟如下:

  • 新建一個加強治理配置工程, 在 Studio 中打開 File -> New -> WSRR Configuration Project, 輸入工程名稱:GEP80
  • 右鍵點擊新建的工程(GEP80),New -> WSRR Business Model, 命名为 customizedBusinessModel。
  • 在新創建的業務模型可視化編輯界面上,創建一個新的業務模型(CustomizedService),並添加一個屬性名稱(serviceName)。具體的步驟就是在右側的工具欄裏拖拽一個類圖(Class)到左側空白區域,並在下面的屬性區域對業務模型的名稱進行編輯,並添加一個屬性。

圖 8. 創建業務模型
圖 8 創建業務模型

我們已經創建了一個最簡單的業務模型,這個模型只有一個屬性,就是服務名稱(serviceName)。將來我們在 WSRR 服務器上只要在這個業務模型上創建的服務都會屬於這個業務模型,我們就可以很方便的對屬於同一種類的業務模型進行治理。

Studio 訪問控制編輯

業務模型創建之後,我們需要創建針對這個業務模型進行權限訪問控制,只有指定的用戶才能對這個業務的屬性進行更新。詳細步驟如下:

  • 打開訪問控制編輯器,選中工程 GEP80,定位到 Tool -> Access Control Editor
  • 在打開的編輯器裏,點擊下面的 Roles,定位到角色界面。 點擊 New,並輸入角色的名稱 UpdateServiceRole
  • 點擊下面的 Permissions,定位到權限界面。點擊 New, 並輸入相關信息,如圖 9 所示,然後點擊 Finish。創建的權限(UpdateService)含義就是,當對業務模型 CustomizedService 進行更新(Update)時,需要對角色進行驗證。

    圖 9. 創建權限 UpdateService
    圖 9 創建權限 UpdateService

  • 點擊下面的 Role to Permission Mapping,把所有其他角色都鉤掉,只剩下 UpdateServiceRole 被賦予這個權限,如下圖所示:

    圖 10. 將權限 UpdateService 賦予角色 UpdateServiceRole
    圖 10 將權限 UpdateService 賦予角色 UpdateServiceRole

  • 將整個配置工程打包 Export 到 WSRR 服務器上,並激活。具體步驟這裏不再詳細敘述。

在 WSRR 服務器上查看結果

在所有以上步驟完成之後,我們就可以登錄到 WSRR 服務器上查看結果了。首先我們需要打開我們所創建的業務模型 customizedBusinessModel-> CustomizedService,根據業務模型創建服務 (MyTestService),如下圖 11 所示:


圖 11 服務器上創建業務服務
圖 11 服務器上創建業務服務

點擊 Finish 之後,我們通過點擊 Edit Properties 來更新服務名稱为 MyTestServiceUpdate,然後點擊 OK,我們就會看到錯誤提示信息,說用戶 admin 沒有權限更新這個服務,這是因为我們沒有把用戶 admin 加入到角色 UpdateServiceRole 裏。


圖 12. 服務器上驗證文件報錯信息
圖 12 服務器上驗證文件報錯信息

下面我們把用戶 admin 加入到角色 UpdateServiceRole 裏,如下圖 13 所示。


圖 13. 將用戶 admin 加入到角色組 UpdateServiceRole 裏
圖 13 將用戶 admin 加入到角色組 UpdateServiceRole 裏

這時,我們再去對這個服務進行更新,admin 就會通過驗證並最終更新成功。


總結

至此为止,已經詳細介紹了如何使用 Studio 創建業務模型,如何創建角色,如何創建權限,如何用 WSRR 服務器進行訪問權限配置等等關鍵信息。希望讀者通過本文能對 WSRR 細粒度的訪問控制有一個全新的認識並靈活使用 Studio 來修改訪問控制定義文件。


頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
欄目列表
推薦內容