在 Liberty 中配置 RunAs 鑑別
您可以配置 Liberty 的 RunAs 規格,以便將鑑別委派給另一個身分。
關於這項作業
通過將指定的使用者身分和選用的密碼對映至 RunAs 角色,您可以將鑑別程序委派給具備 RunAs 角色的使用者。
您必須啟用 appSecurity-2.0 和 servlet-3.0 Liberty 特性,且必須有一個使用者登錄可供您的應用程式配置 RunAs 角色。
如需 RunAs 鑑別的相關資訊,請參閱RunAs() 鑑別。
如果要配置 RunAs 鑑別,請完成下列步驟:
程序
- 在 server.xml 檔案中啟用 appSecurity-2.0 和 servlet-3.0 Liberty 特性。
- 配置您應用程式的使用者登錄。
- 在您應用程式的部署描述子中,指定 <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>
將您在上一步驟指定的角色對映至使用者。 您可以在 ibm-application-bnd.xmi/xml 或 server.xml 檔中執行這個動作。 在 <run-as> 元素中,您必須指定一個使用者名稱。 如果您使用 ibm-application-bnd.xml 檔,必須有密碼;如果您使用 server.xml 檔,密碼是選用的。 如果需要密碼,請利用 /bin 目錄中的 securityUtility encode 指令來對密碼進行編碼。如需 securityUtility 指令的相關資訊,請參閱securityUtility 指令。
下列範例在 server.xml 檔的 <application-bnd> 元素中使用 <run-as>元素,這裡 Employee 角色已對映至 RunAs 使用者 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 Servlets 3.0。
- 由於 server.xml 檔中的密碼是選用的,您也可以將下列程式碼用於沒有密碼的使用者:
上層主題: 在 Liberty 中鑑別使用者


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_sec_runas
檔名:twlp_sec_runas.html