Sun Java System Application Server 9.1 管理指南

瞭解使用者、群組、角色和範圍

Application Server 對以下實體強制執行其認證與授權策略:


備註 –

儘管使用者和群組是為整個 Application Server 指定的,但是每個應用程式都需要定義自己的角色。封裝和部署應用程式時,應用程式會指定使用者/群組和角色之間的對映,如下圖所示。


圖 9–1 角色對映

此圖顯示為群組指定使用者的方式、為角色指定使用者和群組的方式,以及應用程式使用群組和角色的方式。

使用者

使用者是已在 Application Server 中定義的個人 (或應用程式) 身份。使用者可以與群組關聯。Application Server 認證服務可以管理多個範圍中的使用者。

群組

J2EE 群組 (或簡稱群組) 是依循一般特性 (例如職務或用戶設定檔) 進行分類的使用者類別。例如,假定電子商務應用程式的使用者屬於 customer 群組,但是大用戶可以屬於 preferred 群組。將使用者進行群組分類可以簡化有大量使用者時的存取控制。

角色

角色定義使用者可以存取哪些應用程式以及每個應用程式的哪些部分,以及使用者可以執行的作業。亦即,角色決定了使用者的授權層級。

例如,假定在人事應用程式中,所有員工均可以存取電話號碼和電子郵件位址但只有管理者才能存取薪水資訊。該應用程式至少可以定義兩個角色:employeemanager;僅允許 manager 角色的使用者檢視薪水資訊。

角色與使用者群組的不同之處在於,角色在應用程式中定義功能,而使用者群組是以某一方式相關的一組使用者。例如,假定在人事應用程式中有 full-timepart-timeon-leave 幾個群組,但所有這些群組中的使用者仍是 employee 角色。

角色是在應用程式部署描述元中定義的。相反,群組是針對整個伺服器和範圍而定義的。應用程式開發者或部署者在每個應用程式的部署描述元中將角色對映至一個或多個群組。

範圍

範圍 (也稱為安全策略網域安全網域),是伺服器定義和強制執行一般安全策略的範圍。在實際應用中,範圍是伺服器儲存使用者和群組資訊的儲存庫。

Application Server 預先配置了三個範圍:file (初始預設範圍)、certificateadmin-realm。您還可以設定 ldap JDBCsolaris 範圍或自訂範圍。應用程式可以在其部署描述元中指定要使用的範圍。如果應用程式不指定範圍,Application Server 將使用其預設範圍。

file 範圍中,伺服器將使用者憑證儲存在本地名為 keyfile 的檔案中。您可以使用管理主控台來管理 file 範圍中的使用者。

certificate 範圍中,伺服器將使用者憑證儲存在憑證資料庫中。使用 certificate 範圍時,伺服器結合使用憑證和 HTTPS 通訊協定認證 Web 用戶端。如需有關憑證的更多資訊,請參閱證書和 SSL 簡介

admin-realm 也是一個 FileRealm,它將管理員使用者憑證儲存在本地名為 admin-keyfile 的檔案中。您可以使用管理主控台管理此範圍中的使用者,其方法與您管理 file 範圍中的使用者的方法相同。

ldap 範圍中,伺服器將從簡易資料存取協定 (LDAP) 伺服器 (例如 Sun Java System Directory Server) 中取得使用者憑證。LDAP 是一種可以讓任何人在網路 (無論是公共網際網路還是企業內部網路) 中尋找組織、個人和其他資源 (例如檔案和裝置) 的協定。如需有關管理 ldap 範圍中的使用者和群組的資訊,請參閱您的 LDAP 伺服器文件。

JDBC 範圍中,伺服器會從資料庫取得使用者憑證。Application Server 會使用資料庫資訊,以及配置檔的已啟用 JDBC 範圍選項。

solaris 範圍中,伺服器將從 Solaris 作業系統中取得使用者憑證。Solaris 9 OS 和更高版本支援此範圍。如需有關管理 solaris 範圍中的使用者和群組的資訊,請參閱您的 Solaris 文件。

自訂範圍是使用者憑證的任何其他儲存庫,例如關聯式資料庫或協力廠商元件。如需更多資訊,請參閱管理主控台線上說明。

Procedure配置 Java EE 應用程式的 JDBC 範圍

Application Server 可讓您在 JDBC 範圍中指定使用者的憑證,而不是在連線池中指定。使用 JDBC 範圍取代連線池,可防止其他應用程式瀏覽使用者憑證的資料庫表格。使用者的憑證是使用者的名稱和密碼。


備註 –

依預設,不支援在 JDBC 範圍中儲存純文字的密碼。一般情況下不應該儲存純文字密碼。


  1. 建立資料庫表格,在其中儲存範圍的使用者憑證。

    建立資料庫表格的方法,需視所使用的資料庫而定。

  2. 將使用者憑證增加到在 步驟 1 中建立的資料庫表格。

    將使用者的憑證增加到資料庫表格的方法,需視所使用的資料庫而定。

  3. 建立 JDBC 範圍。

    使用管理主控台 GUI 來達成此目的。如需有關建立 JDBC 範圍的說明,請參閱管理主控台 GUI 的線上說明。

  4. 將在步驟 3 中建立的範圍指定為應用程式的範圍。

    若要指定範圍,請針對應用程式修改適當的部署描述元:

    • 對於企業歸檔 (EAR) 檔案中的企業應用程式,請修改 sun-application.xml 檔案。

    • 對於 Web 應用程式歸檔 (WAR) 檔案中的 Web 應用程式,請修改 web.xml 檔案。

    • 對於 EJB JAR 檔案中的企業 Bean,請修改 sun-ejb-jar.xml 檔案。

    如需有關如何指定範圍的更多資訊,請參閱「Sun Java System Application Server 9.1 Developer’s Guide」中的「How to Set a Realm for an Application or Module」

  5. 將安全性角色指定給範圍中的使用者。

    若要將安全性角色指定給使用者,請將 security-role-mapping 元素增加到在 步驟 4 中所修改的部署描述元。

    下列範例顯示了 security-role-mapping 元素,此元素會將安全性角色 Employee 指定給使用者 Calvin

    <security-role-mapping>
        <role-name>Employee</role-name>
        <principal-name>Calvin</principal-name>
      </security-role-mapping>