定义用户对产品组件的访问权限

您可以结合 “Test Accelerator for Z ”产品使用此功能,以监控用户访问情况,从而满足审计和合规要求。

注:
  • 启用此功能时,现有的 API 端点不会受到影响。
  • 使用 Swagger UI 资源管理器端点来验证您的配置:
    • 要验证用户对产品组件的访问控制,请使用:
      GET /info/licenses/{product}/components/{component}/authorized
    • 要检索用户信息,请使用以下接口:
      GET /info/user
  • 不支持通过 z/OS 身份传播集成非 z/OS 身份,也不支持在 OAuth2 授权协议之上叠加 OpenID/Connect (OIDC) 协议。

产品组件映射

此功能所支持的有效产品组件映射值如下表所示。 在继续之前,请确保您的安装使用了受支持的值。
  • TAZ - Z 语言测试加速器
  • EDT - 早期开发测试
  • FT - 功能测试
表 1. 产品组件映射
产品 组件
TAZ EDT
TAZ 《金融时报》

z/OS 原生实现

在 z/OS 上,可以通过原生方式监控用户对产品组件的访问权限:利用SAF/ RACF 配置文件进行访问控制,并利用SAF/ RACF 用户配置文件中的字 WORKATTR 段,将非 z/OS 用户信息与 z/OS 用户进行关联。 这两项机制共同作用,使 UI 客户端能够将 z/OS 用户 ID 作为主要身份标识,并判断多个 z/OS 用户是否与同一位所有者相关联。

用法
z/OS 用户对产品组件的授权可以在单次请求内完成,也可以分两次请求完成,具体取决于所使用的身份验证方案:
  • 基本方案 :身份验证和授权在单次请求中完成。 客户端在调用产品组件授权端点时,会使用 Basic 方案,在 HTTP 授权头中包含 z/OS 的用户名和密码,以及产品和组件的值。
  • Bearer 方案 :使用 Bearer 方案进行身份验证分为两个阶段。 首先,客户端通过 SAF/ RACF 验证 z/OS 的用户名和密码,以获取一个 SAF/ RACF 身份令牌(IDT),该令牌以 JSON Web Token(JWT)的形式呈现。 该令牌可从 DPS /login 端点或支持 SAF/ RACF IDT 身份验证的外部 API 中获取。 获取令牌后,UI 客户端在调用产品组件授权端点时,会将 JWT 通过 Bearer 方案包含在 ` HTTP ` 授权头中,并附上产品和组件的值。
产品组件授权端点会通过 SAF/ RACF 对凭据或令牌进行验证。 如果身份验证成功,系统将通过将 z/OS 用户身份以及产品和组件值与SAF/ RACF 配置文件进行比对,来执行用户授权。 授权成功后,端点将使用 RACROUTE REQUEST=EXTRACT 宏向 SAF/ RACF 发起查询,从 z/OS 用户配置文件的 WORKATTR 段中检索非 z/OS 用户信息,并将该信息包含在返回给客户端的响应中。
注:
  • 定义该 WORKATTR 分段是可选的。
  • 调试配置文件服务使用 SAF 接口 (RACROUTE REQUEST=EXTRACT) 宏从任何 z/OS 外部安全管理器 (ESM) 中检索工作属性。 不过,SAF 接口并不能保证在 MVS 操作系统上所有功能均被允许。 安全管理员必须确认其安全管理器( RACF、 Top Secret、 ACF2 )支持检索工作属性。 可使用以下端点直接向 SAF 查询工作属性。 您可以通过 Swagger UI 浏览器访问它:
    GET /info/user
SAF/ RACF 身份验证
安全管理员必须在 z/OS 主机上启用所需的身份验证方案。 配置完成后,必须告知用户在设置 UI 客户端时应使用哪种方案。 如需更多信息,请阅“添加对身份验证服务 API 的支持”。
SAF/ RACF 授权
安全管理员必须在FACILITY类下,针对用户或组被授权以READ访问权限使用的每个产品和组件名称对,创建 RACF 配置文件,格式如下:
EQADTOOL.REGISTRATION.<PRODUCT>.<COMPONENT>
其中
  • <PRODUCT> 是产品的名称,例如 TAZ
  • <COMPONENT> 是组件的名称,例如, EDT
示例:
  1. 以下 RACF 命令授予用户 IBMUSER 访问该 TAZ 产品 EDT 组件的权限:
    RDEFINE FACILITY EQADTOOL.REGISTRATION.TAZ.EDT UACC(NONE) DATA('Debug Profile Service')
    
    PERMIT EQADTOOL.REGISTRATION.TAZ.EDT CLASS(FACILITY) ID(IBMUSER) ACCESS(READ)
    
    SETROPTS RACLIST(FACILITY) REFRESH
    
  2. 以下 RACF 命令授予该组对该 TAZ 产品组件 EDTTAZEDT 的访问权限:
    ADDGROUP TAZEDTGP
    
    CONNECT IBMUSER GROUP(TAZEDTGP)
    
    RDEFINE FACILITY EQADTOOL.REGISTRATION.TAZ.EDT UACC(NONE) DATA('Debug Profile Service')
    
    PERMIT EQADTOOL.REGISTRATION.TAZ.EDT CLASS(FACILITY) ID(TAZEDTGP) ACCESS(READ)
    
    SETROPTS RACLIST(FACILITY) REFRESH
    
  3. 以下 RACF 命令将授予所有用户访问该 TAZ 产品中该 EDT 组件的权限:
    RDEFINE FACILITY EQADTOOL.REGISTRATION.TAZ.EDT UACC(READ) DATA('Debug Profile Service')
    
    SETROPTS RACLIST(FACILITY) REFRESH
    
  4. 以下 RACF 命令授予用户 IBMUSER 访问该 TAZ 产品所有组件的权限:
    RDEFINE FACILITY EQADTOOL.REGISTRATION.TAZ.** UACC(NONE) DATA('Debug Profile Service')
    
    PERMIT EQADTOOL.REGISTRATION.TAZ.** CLASS(FACILITY) ID(IBMUSER) ACCESS(READ)
    
    SETROPTS RACLIST(FACILITY) REFRESH
    
SAF/ RACF 用户资料 – WORKATTR
安全管理员可以选择在 z/OS 用户配置文件的 WORKATTR “段”中定义工作属性。 这些属性用于将非 z/OS 用户信息与 z/OS 用户 ID 关联起来,并用于识别多个 z/OS 用户 ID 属于同一所有者的情况。
可通过 API 访问 WORKATTR 段中的以下字段。 有关 RACF 工作属性的更多详细信息,请参阅用户配置文件中的WORKATTR段以及ALTUSER(修改用户配置文件)中的WORKATTR | NOWORKATTR
  • WAEMAIL :电子邮件地址
  • WAACCNT :账号
在内部,该 API 通过调用 SAF 并使用 RACROUTE REQUEST=EXTRACT 宏来检索工作属性。 有关该宏及相关错误代码的详细信息,请参阅 RACROUTE REQUEST=EXTRACT(标准格式)
注:
  • 只有在用户成功获得访问该产品组件的授权后,产品组件授权端点才会从数据库 SAF/RACF 中检索工作属性。
  • SAF 提供了一层称为“字段级访问”的安全机制,该机制用于验证当前用户的安全环境是否具备提取 RACROUTE REQUEST=EXTRACT 宏中指定字段的权限。 默认情况下,DPS 已禁用此设置,这意味着不会强制执行字段级别的访问检查。 因此,DPS 中的经过身份验证的用户可以检索其自身的工作属性。
  • WAEMAIL(电子邮件)字段必须是唯一的,且不能在不同的 z/OS 用户ID之间重复使用。
示例:
  1. 以下 RACF 命令将创建一个新用户,其工作属性 WAEMAILIBMUSERibmuser@ibm.comWAACCNT 74008455383225209
    ADDUSER IBMUSER DFLTGRP(OMVS) PASSWORD(password) WORKATTR( WAACCNT(74008455383225209) WAEMAIL(ibmuser@ibm.com) ) TSO( ACCTNUM(ACCT#) PROC(GENERAL) ) OMVS( UID(0001) HOME(/u/ibmuser) PROGRAM(/bin/sh) )
  2. 以下 RACF 命令现有用户 的工作属性更新为 IBMUSER,并将 的 ibmuser@ca.ibm.comWAEMAIL 属性 WAACCNT 更新为 oo29GvnAziTTq0XF2qRvzitYTdsZ2Gm8t89MVcxBz7
    ALTUSER IBMUSER WORKATTR( WAEMAIL(ibmuser@ca.ibm.com) )
    
    ALTUSER IBMUSER WORKATTR( WAACCNT(oo29GvnAziTTq0XF2qRvzitYTdsZ2Gm8t89MVcxBz7) )