Liberty 中配置 RunAs 认证

可通过对 Liberty 配置 RunAs 规范以将认证委派给另一身份。

关于此任务

通过将所指定的用户身份和可选密码映射至 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. For distributed platforms将您在前一步骤中指定的角色映射至用户。可以在 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 角色已映射至 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


用于指示主题类型的图标 任务主题

文件名:twlp_sec_runas.html