WebSphere快速入門(22)
發表于:2007-07-01來源:作者:點擊數:
標簽:
6.8 安全性 WebSphere 應用 服務器 具有很好的安全性支持。安全性簡單地說就是確定誰可訪問重要的系統資源,這些系統資源包括文件、目錄、程序、連接和 數據庫 。以獨立模式運行WebSphere應用服務器比作為 Web 服務器的一部分運行具有更高的安全性。如果安全
6.8 安全性
WebSphere應用
服務器具有很好的安全性支持。安全性簡單地說就是確定誰可訪問重要的系統資源,這些系統資源包括文件、目錄、程序、連接和
數據庫。以獨立模式運行WebSphere應用服務器比作為 Web 服務器的一部分運行具有更高的安全性。如果安全性要求超出了 Web 服務器提供的安全性,那么請以獨立模式運行WebSphere應用服務器。下面介紹使用存取控制表保護資源、選擇認證方案和協議、在WebSphere應用服務器中使用目錄服務。
1.使用存取控制表保護資源
建立了一個設置安全性的基本過程。
與安全性相關的概念包括用戶、組、資源、許可權、領域、和存取控制表(ACL),這些安全性概念是緊密相關的,現說明如下:
(1) 用戶:一個可被 Web 服務器認證的身份。用戶可以是人也可以是計算機。
(2) 組:用戶的集合。組提供了一個管理大量的用戶的有效方法,這是因為管理員可以一次指定一個組的許可權。通常,組成員之間有一些共同特征。例如,一個公司中可能包括一個由管理級雇員組成的組,和另一個由非管理級雇員組成的組。其中,可能對非管理級用戶賦予查看銷售數據文件的訪問權,而對管理級用戶賦予查看和編輯銷售數據文件的訪問權??梢詫⒁粋€人定義成單個用戶,同時也將其定義成組的成員。例如,個人 Amy 可能代表單個用戶 amy,也可能代表組 managers 的成員。
(3) 資源:通過 Web 服務器進行存取的有價資源包括HTML 文件和目錄(Web 頁面)、其它文件和目錄(如FTP文件)、Web 應用程序(Java Servlet 或 CGI 程序),而通過WebSphere應用服務器進行存取的資源包括Java Servlet、啟用訪問企業資源和應用程序(如數據庫)的定制 Servlet、連接、套接字、文件和其它可由 Servlet 使用的資源。
(4) 許可權:許可權表示請求訪問資源的特權。管理員可通過建立存取控制表向用戶和組授予許可權,以保護資源。許可權是與特定的資源相關的。想象一下,如果一個用戶具有查看文件 A 和修改文件 B 的許可權。那么該用戶不能用修改文件 B 的許可權來修改文件 A。每個許可權僅適用于特定的資源,且不能傳遞。單個用戶的許可權優先于組的許可權。例如,如果用戶 amy 對文件具有讀、寫權,但同時 amy 所屬的組對該文件僅有讀取權,那么 amy 仍對該文件具有讀、寫權,這是因為單個用戶的許可權將覆蓋具有更多限定的組許可權。(即使組的許可權限制性低于單個用戶的許可權,但用戶的許可權仍將覆蓋組的許可權)。
(5) 領域:領域是用戶、組和存取控制表的數據庫。為了使用戶能訪問領域中的資源,必須在該領域中定義需訪問資源的用戶。一個用戶可以屬于幾個領域,但在同一領域中用戶標識符不能重復。例如,用戶 amy 可屬于 fileRealm 和 anyRealm 領域。但每個領域中僅可包含一個名為 amy 的用戶??稍诿總€領域中賦予用戶 amy 訪問不同資源的不同許可權。
(6) 存取控制表:與資源關聯的存取控制表指定了領域中的哪些用戶和組可以訪問資源。
存取控制表(ACL)、領域和資源的關系如下:
l 一個領域可以包含許多 ACL。
l 一個領域可以包含許多資源。
l 一個 ACL 可以僅屬于一個領域。
l 一個資源可以僅屬于一個領域。
l 一個資源僅與一個 ACL 相關。
l 一個 ACL 可與許多資源相關。
WebSphere應用服務器附帶了一些前期建立的領域:
l defaultRealm 定義了用戶如何訪問本地定義的資源。也可建立存取控制表,以確定哪些用戶和組
對哪些資源具有訪問權。
l NT 領域(NTRealm)和
UNIX領域(
UnixRealm)定義了在操作系統中擁有帳戶的用戶如何使用
WebSphere應用服務器資源。 操作系統中定義的用戶可由WebSphere應用服務器共享。只要他們存在于下層系統中,這種共享就一直存在。WebSphere應用服務器管理器界面使您能查看該領域;但若要更改它,必須使用操作系統所提供的設施。目前,WebSphere應用服務器可以共享操作系統定義的用戶,但不能共享組。
l servletMgrRealm 定義了 Servlet 如何訪問遠程定義的資源,如遠程裝入的 Servlet。 servletACL 是
該領域中的唯一一張存取控制表。當遠程裝入且帶有數字簽名的 Servlet 試圖訪問一個受保護的資源時,將對 Servlet 中的數字證書與 servletMgrRealm 中與用戶關聯的數字證書進行比較。 servletACL 定義了是否授予或拒絕許可權。例如,假設用戶 X 的數字證書封裝在 anyServlet.JAR 文件中。如果用戶 X 被添加在 servletMgrRealm 中,則所有包含與該用戶相同數字證書的 Servlet (anyServlet.JAR 文件中)可以執行和訪問賦予該用戶的資源。
l 最后,如果在WebSphere應用服務器管理器的“目錄管理”頁面中啟用目錄服務,將顯示
LDAPRealm。WebSphere應用服務器可以共享定義在目錄服務中的用戶和組,且這種共享將一直持續下去,直至除去他們或禁用目錄管理支持。WebSphere應用服務器管理器界面使您能查看該領域;但若要對它進行更改,必須使用 LDAP 服務器所提供的設施。如需更多有關 LDAP、目錄服務和 LDAPRealm 的信息,請參閱有關使用目錄服務的文檔。
WebSphere應用服務器使您能設置各種許可權。例如,其中包括發送和接收文件、刪除文件、讀取和寫入文件、裝入 Servlet、鏈接至庫文件、打開和偵聽套接字等許可權。某些情況下,服務不需要其客戶存在于存取控制表中。例如,許多 Web 頁面(HTTP)服務向所有用戶公開其文檔,而不要求他們在存取控制表中進行注冊。
可通過為每個資源在單個領域中建立單個存取控制表(ACL)來保護該資源(下面將進行討論)。 ACL 將指定可以訪問或修改資源的用戶或組。對于要保護的每個資源,需要指定存取控制表、安全性領域、認證方案(用來驗證訪問資源的用戶的方法)。下面介紹實現安全性的一個示例。
使用各種管理器頁面,以用存取控制表來建立安全性的基本步驟顯示如下。
(1) 定義用戶。
使用“安全性”-> 使用“用戶”頁面來定義用戶,即定義被允許訪問資源的個人和計算機。例如,定義名為 bopeep 的用戶:
l 選擇 defaultRealm。
l 單擊頁面左上部的“添加”按鈕。
l 輸入用戶名 bopeep。
l 輸入口令 sheep。再一次輸入該口令以進行驗證。
l 單擊“確定”按鈕。
l 驗證 bopeep 顯示在“定義的用戶”列表中。
(2) 可選地定義組
使用“安全性”-> 使用“組”頁面來定義用戶所屬的組,以使管理更加容易。首先,選擇一個領域。下一步,選擇將組添加到該領域中??梢杂媚矚g的名稱來命名組,然后將用戶從非成員狀態轉換為成員狀態。例如,將用戶 bopeep 添加到組 mypeeps 中:
l 選擇 defaultRealm。
l 單擊頁面左上部的“添加”按鈕。
l 輸入組名 mypeeps。
l 在“非成員”列表中選擇用戶 bopeep。
l 單擊“非成員”列表旁的“添加”按鈕。
l 驗證 bopeep 已轉換到成員框中。
(3) 創建 ACL
使用“安全性”-> 使用“存取控制表”頁面來創建 ACL。例如,創建名為 sheepcontrol 的 ACL:
l 單擊定義“定義的存取控制表”列表旁的“添加”按鈕。
l 輸入 ACL 名稱 sheepcontrol。
l 單擊“確定”按鈕。
(3) 定義資源
使用“安全性”-> 使用“資源”頁面以將要保護的資源添加到領域中。(注意:必須在執行“創建 ACL”步驟后才能執行該步驟,這是因為必須指定新資源所屬的 ACL)。例如,將 CheckMessage Servlet 添加到領域 defaultRealm 中的 sheepcontrol ACL 中:
l 選擇 defaultRealm。
l 單擊“添加”按鈕。
l 選擇基本方案作為認證方案。(“方案”選項將在下文中討論)。
l 選擇 sheepcontrol ACL。
l 選擇 Servlet,并指定 CheckMessage Servlet。
l 單擊“確定”按鈕。
l 驗證 CheckMessage 現已作為 ACL sheepcontrol 的資源列示出來。
(4) 賦予許可權
返回 ACL 并賦予用戶、組和計算機訪問 ACL 資源的許可權。例如,賦予 bopeep具有 GET 和 PUT 許可權,以使它可以訪問領域 defaultRealm 中sheepcontrol ACL的文件和文件夾:
l 確保已在“定義的存取控制表”列表框中選定 sheepcontrol。
l 單擊頁面底部“主許可權”字段旁的“添加”按鈕。
l 當顯示“在 defaultRealm 中的 ACL sheepcontrol 添加許可權”框時,單擊“文件與文件夾”。
l 下一步,選擇許可權選項為 bopeep。由于 bopeep 是一個用戶,所以單擊“用戶”。在列表中選
擇bopeep。(注意,如果選擇的是“組”,則將看到“主名”列表中的組 mypeeps)。
l 使用復選框賦予 bopeep具有 GET 和 PUT 許可權。
l 單擊“確定”按鈕。
l 通過查看“主許可權”框來驗證 bopeep 具有正確的許可權。如果沒有顯示許可權,請單擊 bopeep
左邊的加號。這時將顯示一個列表,該列表顯示了 bopeep 的許可權。
2.選擇認證方案和協議
首先討論的是認證協議,即 HTTP 和 HTTPS。接下來將會討論的是認證方案,即基本、摘要、定制和證書認證。最后討論的是有關組合方案和協議的策略。
(1) 關于認證協議
HTTPS 則是 HTTP 和 SSL 協議的組合。SSL(安全套接字層)是一個
網絡安全協議,它用來提供服務器和客戶機之間必要的安全性。如果選擇 HTTP,認證數據的接收無任何保護。如果選擇 HTTPS,認證數據在每個 SSL 協議中加密。如果要使用證書認證,那么必須使用 HTTPS。
(2) 關于認證方案
WebSphere應用服務器支持的認證方案包括基本認證、摘要認證、定制認證、證書認證。
l 基本認證:使用 HTTP 或 HTTPS 請求來自客戶機的用戶名和口令。 用普通文本將用于驗證的
信息發送給服務器驗證。所有瀏覽器都支持基本認證。如果一個用戶標識符和口令提供了足夠的認證,那么請考慮使用基本認證。
l 摘要認證:使用 HTTP 或 HTTPS 請求來自客戶機的用戶名和口令。將用于驗證的用戶名和口
令的加密形式(使用摘要)發送給服務器。并非所有瀏覽器都支持摘要認證。(當前僅 Sun HotJava 瀏覽器支持該認證方案)。如果瀏覽器不支持摘要認證,那么其用戶將無法訪問由該協議進行保護的資源。
l 定制認證:使用 HTTP 或 HTTPS 來請求使用 HTML 格式定制的客戶機信息。由 CGI 和
Servlet 將這些用于驗證的信息用普通文本發送到服務器上。當需要除了標識符和口令之外的用戶認證時,可使用定制認證。例如,可以請求一個社會安全號的用戶認證。使用該協議,可建立 HTML 格式以詢問用戶數據。認證是由服務器端代碼(CGI 和 Servlet)執行的,而不是由 IBM WebSphere應用服務器運行時應用程序執行的。如果使用定制認證,請使用 HTTPS 保護數據。
l 證書認證:使用 HTTPS 以請求一個客戶機證書。必須啟用 SSL 客戶機認證選項。將用于驗證
的信息發送給服務器。認證使用的數字證書具有很高的安全性,且證書認證通常對用戶是透明的。系統或站點管理員會對客戶機證書進行管理。通常這些任務是由證書權威服務器軟件授權的,例如 IBM Vault Registry 產品。
(3) 組合認證方案和協議
正如前述,除非是在一個與安全無關的環境中,否則 HTTPS 通常更為可取。對于不同的安全性要求可以對方案和協議進行組合,策略如下:
l 對于基本安全性要求,使用基本、摘要或 HTTP 上的定制認證。
l 對于較高安全性要求,使用基本、摘要或 HTTPS 上的定制認證。
l 對于最高安全性要求,使用 HTTPS 上的證書認證。
3.使用目錄服務
一個目錄服務是信息倉庫、存取法和相關服務的組合。信息倉庫通常是用于存儲位置信息和其它有關資源(例如用戶、打印機、文件服務器和WebSphere應用服務器)的詳細信息的數據庫。存取法是指輕量級目錄訪問協議(LDAP)或其它可用來與目錄服務組件進行通信的存取法。相關服務是指目錄服務提供的用于查詢、操縱和認證數據庫中信息的設施。
對集中式安全性數據通常需要使用目錄服務。目錄服務可以為整個網絡提供單個管理點。使用目錄服務,可以一次定義用于所有應用程序(包括WebSphere應用服務器)的用戶和組,而無需為每個應用程序分別定義用戶和組。目錄服務對于實現安全性很有幫助,即通過認證用戶和控制對資源的訪問。沒有目錄服務,可能必須為不同的軟件產品(例如WebSphere應用服務器、Web 服務器和操作系統)重復定義相同的用戶和組,這是因為這些軟件產品不共享安全性數據。
WebSphere應用服務器版本 2.0 支持使用輕量級目錄訪問協議(LDAP)V2 的目錄服務。這些目錄服務包括 Domino Directory 版本 4.6.x 和 Netscape Directory Server 版本 3.x。WebSphere應用服務器版本 2.02 (本地語言版本)也支持 IBM Suites(不包括 IBM Suites 版本 1.0)的 eNetwork Directory 組件。使用目錄服務的基本步驟如下:
(1) 設置目錄服務,或使用一個現有的目錄服務。
(2) 使用WebSphere應用服務器的管理器界面的“目錄管理” 頁面,以標識至WebSphere應用服務
器的目錄服務,并指定基本設置。
(3) 查看管理器中的目錄服務用戶和組信息。
(4) 在WebSphere應用服務器中定義存取控制表(或已有的 ACL),以利用目錄服務用戶和組信息。
(5) 用 ACL 保護WebSphere應用服務器資源。
使用“目錄管理” 頁面指定目錄服務的步驟如下:
l 查看“設置” -> “目錄管理”頁面。
l 在“配置”標簽中,請在“是否啟用目錄?”字段中單擊“是”
l 使用下拉列表選擇目錄類型。選擇:
¾
.netscape”使用 Netscape Directory Server;
¾ “domino4.6”使用 Domino Server;
¾ “enetworkibmsuite”使用 IBM Suite 的 eNetwork Directory Server 組件。
l 輸入駐留目錄服務的計算機主機名。
l 輸入服務的端口號。
l 輸入將作為目錄服務的 LDAP 搜索起始點的基本分辨名(Base DN)。例如,o=raleigh.ibm.com.
l 可選功能。輸入聯編分辨名和聯編口令。這些字段空白表示WebSphere應用服務器匿名聯編目錄
服務。如果指定了聯編分辨名和口令,則請確認將目錄服務配置成使用同一分辨名和口令來認證WebSphere應用服務器,否則認證將告失敗。
當使用“目錄管理”指定目錄服務時,管理器將提供的功能有:
l 動態地建立、初始化和維護與 LDAP 目錄服務相關聯的 ldapRealm。
l 使用管理器的“安全性”頁面關聯WebSphere應用服務器資源和 ldapRealm。
l 將WebSphere應用服務器存取控制表(ACL)與 ldapRealm 的資源關聯起來。
IdapRealm 是一個包含已定義在目錄服務中的用戶和組的WebSphere應用服務器安全性領域??梢允褂肳ebSphere應用服務器的管理器界面的“安全性”頁面,以建立存取控制表和 IdapRealm 之間的關聯。 ldapRealm 對資源進行保護,并且存取控制表允許屬于該領域的用戶和組(在這種情況下,用戶和組在目錄服務中)訪問資源。
ldapRealm 使用非 SSL LDAP V2 協議來與目錄服務進行通信,并根據在“目錄管理”頁面中指定的設置進行聯編。當受 IdapRealm 保護的WebSphere應用服務器資源需要認證時,將根據IdapRealm 來驗證客戶機的用戶標識符和口令。該過程如下:
l 客戶機向WebSphere應用服務器發出 Servlet 請求。
l WebSphere應用服務器確定請求的資源是否受 ACL 保護。
l 因此WebSphere應用服務器將一個認證要求發送給客戶機。
l 客戶機輸入用戶標識符和口令。
l 目錄服務驗證用戶標識符和口令與保護資源的 IdapRealm 是否相符合:目錄服務發出 LDAP 查
找,以查找與指定用戶標識符相符的人。為該用戶創建一個分辨名(DN)。
l 目錄服務使用該用戶分辨名和口令執行一個 LDAP 連接。
l 當目錄服務認證用戶后,WebSphere應用服務器Java 引擎將調用 Servlet 以處理與客戶機獲得的
許可權一致的客戶機請求。
可以通過訪問ldap://act:389/o=raleigh.ibm.com來測試目錄服務是否正在運行,其中:act 是運行目錄服務的機器的主機名,389 是服務的端口號,o=raleigh.ibm.com 是基本分辨名,它還代表了目錄服務中的搜索起始點。
原文轉自:http://www.anti-gravitydesign.com