在 Liberty JVM 服务器中对用户进行认证
虽然您可以为 Liberty JVM 服务器中运行的所有 Web 应用程序配置 CICS ® 安全性,但仅当 Web 应用程序包含安全性约束时,它才会认证用户。 安全性约束由应用程序开发者在 动态 Web 项目 或 OSGi 应用程序项目的部署描述符 (web.xml) 中定义。 安全性约束定义了受保护的对象 (URL) 以及提供保护的角色。
<!-- Secure the application -->
<security-constraint>
<display-name>com.ibm.cics.server.examples.wlp.tsq.web_SecurityConstraint</display-name>
<web-resource-name>com.ibm.cics.server.examples.wlp.tsq.web</web-resource-name>
<description>Protection area for com.ibm.cics.server.examples.wlp.tsq.web</description>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>Only SuperUser can access this application</description>
<role-name>SuperUser</role-name>
</auth-constraint>
<user-data-constraint>
<!-- Force the use of SSL -->
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- Declare the roles referenced in this deployment descriptor -->
<security-role>
<description>The SuperUser role</description>
<role-name>SuperUser</role-name>
</security-role>
<!--Determine the authentication method -->
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
- Liberty 应用程序安全认证。除非使用分布式身份映射,否则与 SAF 用户注册表的集成是 CICS Liberty 安全性功能部件的一部分。 在 CICS 中支持 Liberty 支持的任何应用程序安全性机制,这包括 HTTP 基本认证,表单登录, SSL 客户机证书认证,使用定制登录模块的身份断言, JACC , JASPIC 或信任关联拦截器 (TAI)。 必须授予 Liberty 认证的所有 SAF 用户标识对 Liberty JVM 服务器 APPL 类概要文件的读访问权。 其名称由 Liberty 服务器配置文件 server.xml 中的 safCredentials 元素中的 profilePrefix 设置确定。
<safCredentials profilePrefix="BBGZDFLT"/>CICS 终端用户还使用 APPL 类来控制对特定 CICS 区域的访问,并且 Liberty JVM 服务器可以根据您的安全需求使用与 CICS APPLID 相同的概要文件。 如果未指定此元素,那么将使用 BBGZDFLT 作为缺省 profilePrefix。
您必须定义 APPLID,用户必须具有对此 APPLID 的访问权。 要在 APPL 类中配置并激活 BBGZDFLT 概要文件,请执行以下操作:
必须授予用户对 APPL 类中的 BBGZDFLT 概要文件的读访问权才能进行认证。 要允许用户 AUSER 对 BBGZDFLT APPL 类概要文件进行认证,请执行以下操作:RDEFINE APPL BBGZDFLT UACC(NONE) SETROPTS CLASSACT(APPL)
必须授予未认证的 Liberty SAF 用户标识对 APPL 类概要文件的读访问权。 可以在 Liberty 服务器配置文件 server.xml 中的 safCredentials 元素内指定 SAF 未认证的用户标识。PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(AUSER)
如果未指定此元素,那么缺省 unauthenticatedUser 为 WSGUEST。 要允许 SAF 未认证的用户标识 WSGUEST 对 APPL 类中的 BBGZDFLT 概要文件进行读访问:<safCredentials unauthenticatedUser="WSGUEST"/>
如果使用 WSGUEST ,那么应遵循以下步骤来配置 SAF 用户注册表,如 设置系统授权工具 (SAF) 未认证用户中所述。PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(WSGUEST)WLP z/OS® 系统安全访问域 (WZSSAD) 是指授予 Liberty 服务器的许可权。 这些许可权控制认证和授权用户时服务器有权查询的系统授权工具 (SAF) 应用程序域和资源概要文件。 必须在 WZSSAD 域中授予 CICS 区域用户标识许可权才能进行认证调用。 To grant permission to authenticate, the CICS region ID must be granted READ access to the BBG.SECPFX.<APPL> profile in the SERVER class:
RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE) PERMIT BBG.SECPFX.BBGZDFLT CLASS(SERVER) ACCESS(READ) ID(cics_region_user)有关更多详细信息,请参阅 Liberty: 使用 WZSSAD 访问 z/OS 安全性资源。
- 如果从 Liberty 提供未经认证的主体,那么将使用 URIMAP 中定义的 USERID。
- 如果 URIMAP 中未定义任何 USERID ,那么请求将以 CICS 缺省用户标识运行。
由于在 CICS 事务连接处理期间延迟 Liberty 事务的安全性处理的方式,将按如下所示确定 CICS 监视设施 (CMF) 记录中使用的用户标识, z/OS 工作负载管理器 (WLM) 分类以及 XAPADMGR 出口的任务关联数据和 UEPUSID 全局用户出口字段; HTTP 安全性头中的用户标识,或者如果没有用户标识,那么将确定从匹配的 URIMAP 中获取的用户标识。 如果两者都不存在,那么将使用 CICS 缺省用户标识。
请注意, Liberty 会高速缓存已认证的用户标识,并且与 CICS 不同,不会在高速缓存周期内检查到期的用户标识。 您可以使用标准 Liberty 配置流程来配置高速缓存超时。 请参阅 在 Liberty 中配置认证高速缓存。