Liberty 中配置應用程式授權

配置應用程式的授權是指確認使用者或群組是否屬於指定的角色,以及這個角色是否具備存取資源的專用權。

關於這項作業

Liberty 伺服器會從使用者登錄中擷取使用者和群組對映資訊,然後檢查應用程式的授權配置,來判斷使用者或群組是否已指派給必要的角色之一。之後,伺服器會讀取應用程式的部署描述子來判斷使用者或群組是否有存取資源的專用權。

適用於 z/OS 平台當您使用「系統授權機能 (SAF)」授權時,會利用 SAF 角色對映器,將角色對映至 EJBROLE 資源設定檔。 伺服器會查詢 SAF 來判斷使用者是否具備 EJBROLE 資源設定檔所需要的 READ 存取權。

程序

  1. server.xml 檔中啟用 appSecurity-2.0 Liberty 特性。
    例如:
        <featureManager>
            <feature>appSecurity-2.0</feature>
        </featureManager>
    適用於 z/OS 平台註:
    • 如果您使用 SAF 授權提供者,請併入 zosSecurity-1.0 特性,並在 server.xml 檔中定義一個 safAuthorization 配置元素。 例如:
       <featureManager>
           <feature>appSecurity-2.0</feature>
           <feature>zosSecurity-1.0</feature>
       </featureManager> 
      
       <safAuthorization id="saf" />
  2. Liberty 伺服器上配置使用者登錄以進行鑑別。

    請參閱 在 Liberty 中鑑別使用者

    適用於 z/OS 平台如果您使用 SAF 授權提供者,您必須使用 SAF 登錄,且必須授權伺服器來使用 SAF 授權服務。 請參閱 在 z/OS 上啟動及配置 SAF 登錄

  3. 確定您的應用程式部署描述子包含安全限制及其他安全相關資訊。
    註: 您也可以利用 Rational® Application Developer 之類的工具來建立部署描述子。
  4. 配置授權資訊,例如,使用者和群組至角色的對映。
    您可以利用下列方式來配置權限表:
    • 如果您有 EAR 檔,您可以新增授權配置定義到 ibm-application-bnd.xmlibm-application-bnd.xmi 檔中。
    • 如果您有獨立式 WAR 檔,您可以在 server.xml 檔中,新增權限表定義到各自的應用程式元素之下。 您可以利用 WebSphere® Application Server Developer Tools for Eclipse 來執行這個動作。
    附註:
    • 如果您有 EAR 檔,授權配置可能已存在。 在寫入現行規格的 EAR 檔中,這個資訊儲存在 ibm-application-bnd.xml 檔中;在舊的 EAR 檔中,這個資訊儲存在 ibm-application-bnd.xmi 檔中。
    • 如果您的 EAR 檔還沒有包含 ibm-application-bnd.xm* 檔,建立這個檔案不是一項簡易的作業,您可能偏好新增授權配置到 server.xml 檔中。
    • 如果 EAR 檔的授權配置已定義在 ibm-application-bnd.xm* 中,在 server.xml 檔中也有這項配置,兩份表格會合併起來。 如果有任何衝突,會使用 server.xml 檔中的資訊。
    • 如果您修改您的使用者登錄,請務必檢閱權限表中必要的變更。 比方說,如果您指定 access-id 元素,且變更登錄的網域範圍名稱,您也必須在 access-id 元素中變更網域範圍名稱。
    • 如果您在 server.xml 檔中指定了 application-bnd 元素,您的應用程式不能放在 dropins 資料夾中。 如果您將它保留在 dropins 資料夾中,您必須在 server.xml 檔中設定如下,將應用程式監視停用:
      <applicationMonitor dropinsEnabled="false" />

    角色可以對映至使用者、群組或特殊主體。 特殊主體有兩個類型:EVERYONEALL_AUTHENTICATED_USERS。 當角色對映至 EVERYONE 特殊主體時,不具備任何安全性,因為每個人都可以存取,系統不會提示您輸入認證。 當角色對映至 EVERYONE_AUTHENTICATED_USERS 特殊主體時,應用程式伺服器所鑑別的任何使用者都可以存取受保護的資源。

    以下是在 server.xml 檔中配置使用者和群組至角色之對映的程式碼範例:
    <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war">
    	<application-bnd>
    		<security-role name="user">
    			<group name="students" />
    		</security-role>
    		<security-role name="admin">
    			<user name="gjones" />
                <group name="administrators" />
    		</security-role>
    		<security-role name="AllAuthenticated">
    			<special-subject type="ALL_AUTHENTICATED_USERS" />
    		</security-role>
    	</application-bnd>
    </application>

    在這個範例中,admin 角色對映至使用者 ID gjones 以及 administrators 群組中的所有使用者。 AllAuthenticatedRole 對映至特殊主體 ALL_AUTHENTICATED_USERS,換言之,只要提供了有效的鑑別認證,任何使用者都有存取權。

    適用於 z/OS 平台註: 當您啟用 SAF 權限時,就無法使用 ALL_AUTHENTICATED_USERSEVERYONE 特殊主體。
    適用於 z/OS 平台 如果您使用 SAF 授權,會利用 SAF 角色對映器,將角色對映至 EJBROLE 資源設定檔。您可以利用 server.xml 檔中的 safRoleMapper 元素來配置 SAF 角色對映器型樣。 請參閱 Liberty:控制角色如何對映至 SAF 設定檔。依預設,角色在對映至資源設定檔時會利用 profile_prefix.resource.role 型樣,其中
    • profile_prefixsafCredentials 配置元素的 profilePrefix 屬性所定義。 依預設,profilePrefix 值是 BBGZDFLT
    • resource 是資源名稱;例如,應用程式名稱。
    • role 是角色名稱。
    如果要存取受保護的資源,使用者必須具備 EJBROLE 資源設定檔的 READ 存取權。 比方說,如果使用者 ID gjones 要針對應用程式 myapp,在 admin 角色之下存取受保護的資源,使用者 gjones 必須具備 SAF 產品 EJBROLE 類別中之資源設定檔 BBGZDFLT.myapp.admin 的 READ 存取權。
    註: EJBROLE 資源設定檔有區分大小寫。
    下列範例程式碼顯示用來進行使用者授權的範例 RACF® 指令:
    rdef EJBROLE BBGZDFLT.myapp.admin uacc(none)
    permit BBGZDFLT.myapp.admin class(EJBROLE) access(read) id(gjones)
  5. 選用:在沒有應用程式連結資訊時,配置一項授權決策。
    如果沒有提供受保護應用程式的角色對映連結資訊,預設授權引擎會採用保護資源的角色名稱,作為該角色相關聯的群組名稱。因此,比方說,如果角色名稱是 manager,則屬於 manager 群組的使用者具備該資源的存取權。只有在 server.xml 或應用程式連結檔中沒有為該應用程式指定任何應用程式連結資訊時,才會這樣做:例如,如果新增下列連結,會停用安全角色至群組的連結:
    <application type="war" id="myapp" name="myapp" 	location="${server.config.dir}/apps/myapp.war">
          <application-bnd>
    	     <security-role name="anyAppRoleName"/>
          </application-bnd>
    </application>
    註: 為了成功授權給使用者登錄中的群組名稱,角色名稱必須符合登錄中所配置的群組完整或唯一名稱,而不是簡稱。比方說,如果群組的簡稱是 swGroup,但是使用者登錄中的完整或唯一名稱是 CN=swGroup,o=company,c=us,您必須指定 CN=swGroup,o=company,c=us 作為角色名稱,這樣授權才會成功。

指示主題類型的圖示 作業主題

檔名:twlp_sec_rolebased.html