分布式身份映射
使用z/OS分布式身份过滤器(也称为身份传播),可以将外部安全域(分布式身份)的用户身份映射到目标安全域上的特定身份,并将其确认为目标安全域上的特定身份,而无需使用任何其他身份验证手段。
图 1 提供了有关身份传播如何与 CICS配合工作的高级视图。
- 客户机 client-userid 使用名称为 client-realm的外部注册表进行认证。
- 将请求发送到包含分布式身份 (client-userid 和 client-realm) 的 CICS
- 根据CICS接收请求的方式(如CICSIPIC 请求),CICS监听系统任务会调用RACF来验证分布式身份定义是否存在。
- RACF 通过使用分布式身份过滤器将分布式身份映射到 映射的用户标识 ( RACF 用户标识)。 映射基于分布式用户的名称 (client-userid) 和定义了用户标识的注册表的名称 (client-realm)。
- RACF将映射用户 ID和分布式身份信息返回给CICS。
- CICS 连接要在 映射的用户标识下运行的事务。
- 映射用户 ID 和分布式身份都可以在 RACF® SMF 80 记录中进行审计,从而加强不同环境中的责任。 对于 ICRX 情景, CICS® SMF 110 子类型 1 身份类记录也会捕获分布式身份数据和相关的 CICS 任务信息。
将分布式身份映射到RACF用户 ID 的规则由RACF系统程序员使用 "RACMAP命令创建。 分布式身份和RACF用户 ID 之间的关系可以是一对一,也可以是多对一。 有关使用 "RACMAP命令的更多信息,请参阅为身份传播配置RACF。
身份传播可在两种主要情况下与CICS一起使用:
- 向CICS 提交 ICRX(扩展身份上下文参考)令牌时。 ICRX 令牌可由已对用户进行身份验证的可信远程系统传播到CICS。
使用 ICRX 令牌时,通常是因为用户使用了非SAF 用户 ID 进行身份验证。 有关可将 ICRX 映射到RACF用户 ID 的方案列表,请参阅ICRX 方案。
- 使用自由 JVM 服务器时,可使用分布式身份来验证用户。 有关可将分布式身份映射到RACF用户 ID 的 Liberty 方案列表,请参阅Liberty JVM 服务器方案。
ICRX 方案
在以下情况下,可将 ICRX 映射到RACF用户 ID:
- 在 ICRX 令牌中传递
- 当 CICS 收到 CICS IPIC 请求时,可在 ICRX(扩展身份上下文参考)令牌中传递分布式身份。 CICS事务使用映射用户 ID 运行,但CICS同时审核映射用户 ID 和分布式身份。
- 在 SOAP 标头中传递 ICRX 标记
- 当CICS 收到 SOAP 网络服务请求时,分布式身份也可以通过 SOAP 头中的 ICRX 令牌传递。 ICRX 由 IBM® DataPower® Gateway 创建。
在这两种情况下,如果CICS事务链接到系统池内远程CICS区域的其他程序或启动其他事务,分布式标识就会在这些CICS区域间自动传播。 带有 TERMID 或 USERID 的 START 命令不会自动传播身份。
在这两种情况下,CICS安全性都将分布式身份作为与任务关联数据中的用户 ID 相关的附加信息来处理。
自由 JVM 服务器应用场景
在以下情况下,可将分布式身份映射到RACF用户 ID:
- 安全令牌中的分布式身份流
- 在 Liberty JVM 服务器中启用分布式身份映射后,分布式身份可在第三方身份验证令牌(如JSON Web 令牌 (JWT) )中流动。 然后,Liberty JVM 服务器可将分布式身份映射到RACF用户 ID。
- 非SAF 登记册的映射
- 当自由 JVM 服务器被配置为使用非SAF 用户注册表时,用户可以使用非SAF 用户 ID 直接与自由 JVM 服务器进行身份验证。 非SAF 用户登记的例子有
- LDAP(轻量级目录访问协议)注册表
- SAF 和非 SAF 用户登记处联盟
- 企业 Java 身份存储
在所有这些 Liberty 方案中,CICSSMF 110 子类型 1 记录中都没有分布式身份信息,该记录只记录CICS任务用户 ID。
分布式身份不会在CICS区域间传播。
如果 Enterprise Java™ 应用程序使用 JCICS 链接到 COBOL 程序,则该程序和 Enterprise Java 应用程序都使用映射的用户 ID 运行。