在 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 文件中是可选的,所以您也可以对没有密码的用户使用下列代码:
通过 SAF 资源概要文件配置 RunAs 认证(此认证特定于 z/OS 用户)。
通过 SAF 启用 RunAs 授权。
<safAuthorization enableDelegation="true" />
将 RunAs 用户身份分配给应用程序资源和角色。这是通过在对应 SAF 资源概要文件的 APPLDATA 字段中设置 RunAs 用户身份完成的。缺省情况下,给定应用程序和角色的对应 SAF 资源概要文件在 EJBROLE SAF 类中的名称为 {profilePrefix}.{appName}.{roleName}。
这是 Liberty SAF 授权在对该应用程序和角色向用户授权时使用的同一资源概要文件。此概要文件的名称由 safRoleMapper 配置控制。有关将应用程序和角色名称映射至 SAF 概要文件名称的更多信息,请参阅控制将角色映射至 SAF 概要文件的方式。
以下是一些 RACF 命令示例,对于 对于应用程序 myapp 和角色 Employee,这些命令用于将 user5 分配为 RunAs 用户:RDEFINE EJBROLE BBGZDFLT.myapp.Employee UACC(READ) RALTER EJBROLE BBGZDFLT.myapp.Employee APPLDATA('user5') SETROPTS GENERIC(EJBROLE) REFRESH SETROPTS RACLIST(EJBROLE) REFRESH
父主题: 在 Liberty 中认证用户

文件名:twlp_sec_runas.html