在 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 中认证用户

文件名:twlp_sec_runas.html