Liberty 中配置 RunAs 鑑別

您可以配置 Liberty 的執行身分規格,以便將鑑別委派給另一個身分。

關於這項作業

通過將指定的使用者身分和選用的密碼對映至 RunAs 角色,您可以將鑑別程序委派給具備 RunAs 角色的使用者。

您必須啟用 appSecurity-2.0servlet-3.0 Liberty 特性,且您的應用程式必須有一個使用者登錄,您才能配置 RunAs 角色。

如需 RunAs 鑑別的相關資訊,請參閱RunAs() 鑑別

如果要配置 RunAs 鑑別,請完成下列步驟:

程序

  1. server.xml 檔案中啟用 appSecurity-2.0servlet-3.0 Liberty 特性。
  2. 配置您應用程式的使用者登錄。
  3. 在應用程式的部署描述子中,指定 <run-as> 元素。

    下列 web.xml 檔範例指定將後續呼叫委派給對映至 Employee 角色的使用者:

         <servlet id="Servlet_1">
              <servlet-name>RunAsServlet</servlet-name>
              <display-name>RunAsServlet</display-name>
              <description>RunAsServlet</description>
              <servlet-class>web.RunAsServlet</servlet-class> 
              <run-as>
                   <role-name>Employee</role-name> 
              </run-as>
          </servlet>    
  4. 適用於分散式平台將您在上一步驟指定的角色對映至使用者。 您可以在 ibm-application-bnd.xmi/xmlserver.xml 檔中執行這個動作。 在 <run-as> 元素中,您必須指定一個使用者名稱。 如果您使用 ibm-application-bnd.xml 檔,必須有密碼;如果您使用 server.xml 檔,密碼是選用的。 如果需要密碼,請利用 /bin 目錄中的 securityUtility encode 指令來對密碼進行編碼。如需 securityUtility 指令的相關資訊,請參閱securityUtility 指令

    下列範例在 server.xml 檔的 <application-bnd> 元素中使用 <run-as>元素,這裡 Employee 角色已對映至執行身分使用者 user5

         <application-bnd>
              <security-role name="Employee">
                   <user name="user1" />
                   <user name="user5" />
                   <run-as userid="user5" password="{xor}Lz4sLCgwLTs=" />
              </security-role>
         </application-bnd>   
    註:
    • 由於 server.xml 檔中的密碼是選用的,您也可以將下列程式碼用於沒有密碼的使用者:
          <application-bnd>
                <security-role name="Employee">
                     <user name="user1" />
                     <user name="user5" />
                     <run-as userid="user5" />
                 </security-role>
           </application-bnd>   
    • 如果您在 server.xml 檔中指定了 <application-bnd> 元素,您的應用程式不能放在 dropins 資料夾中。 如果您將應用程式保留在 dropins 資料夾中,您必須在 server.xml 檔中設定如下,將應用程式監視停用:
      <applicationMonitor dropinsEnabled="false" />

    RunAs 使用者名稱必須是唯一的,且不存在於外部帳戶中。例如,如果您使某個使用者接受 SAML 身分提供者或 OpenID Connect 提供者的鑑別,請確定 RunAs 使用者名稱不是位於這些外部帳戶中。

    如需 run-as 元素的相關資訊,請參閱 Java Servlet 3.0

  5. 適用於 z/OS 平台透過 SAF 資源設定檔來配置 RunAs 鑑別(專用於 z/OS 使用者)。
    1. 適用於 z/OS 平台透過 SAF 啟用 RunAs 委派。
      <safAuthorization enableDelegation="true" />
    2. 適用於 z/OS 平台將 RunAs 使用者身分指派給應用程式資源和角色。其作法是在對應 SAF 資源設定檔的 APPLDATA 欄位中,設定 RunAs 使用者身分。依預設,會在 EJBROLE SAF 類別中,將給定應用程式和角色的對應 SAF 資源設定檔命名為 {profilePrefix}.{appName}.{roleName}

      這是 Liberty SAF 授權將使用者授權給應用程式和角色時所使用的同一個資源設定檔。設定檔的名稱用 safRoleMapper 配置來控管。如需將應用程式和角色名稱對映至 SAF 設定檔名稱的相關資訊,請參閱控制角色如何對映至 SAF 設定檔

      以下是部分的 RACF 指令範例,指出如何將 user5 當成 RunAs 使用者指派給應用程式 myapp 和角色 Employee
      RDEFINE EJBROLE BBGZDFLT.myapp.Employee UACC(READ)
      RALTER EJBROLE BBGZDFLT.myapp.Employee APPLDATA('user5')
      SETROPTS GENERIC(EJBROLE) REFRESH
      SETROPTS RACLIST(EJBROLE) REFRESH

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

檔名:twlp_sec_runas.html