限制对 MFT 代理程序操作的用户权限

除了使用组来管理对资源的访问权,您还可以启用其他级别的安全性来限制用户可以执行的 Managed File Transfer 代理程序操作。 将代理权限队列上的权限授予用户以给予用户执行特定代理操作的许可权。

启用用户权限管理

要开启用户对代理操作的权限检查,请完成以下步骤:

  1. agent.properties 文件中,将 authorityChecking 的值设置为 true。 有关更多信息,请参阅 MFT agent.properties 文件
  2. 确保运行代理的用户拥有代理队列管理器的 "IBM® MQ备用用户 (ALTUSER) 权限。

    [z/OS]在 "z/OS®平台上,运行代理的用户必须对可请求执行代理操作权限的用户 ID 拥有 ALTUSER 权限。

传输中所涉及的代理都必须启用相同的安全级别,即,在代理的属性文件中,authorityChecking 必须设置为相同的值。 authorityChecking 属性值不同的代理之间的传输将失败。

代理权限队列

代理具有的权限队列可用于管理哪些用户有权限执行某些代理操作。 代理无法将消息置入这些队列中,也无法从其中获取消息。 代理权限队列如下:
  • SYSTEM.FTE.AUTHADM1.代理名称
  • SYSTEM.FTE.AUTHAGT1.代理名称
  • SYSTEM.FTE.AUTHMON1.代理名称
  • SYSTEM.FTE.AUTHOPS1.代理名称
  • SYSTEM.FTE.AUTHSCH1.代理名称
  • SYSTEM.FTE.AUTHTRN1.代理名称

当通过设置代理属性 authorityChecking=true 来启用用户权限管理时,用户对代理权限队列具有的权限可指定该用户有权执行的操作。

重要信息: inquire 许可权是对所有代理权限队列的必需许可权。
下表概述了除 inquire 许可权外,用户或组在代理权限队列上执行特定操作所需的 IBM MQ 访问权限。
表 1. 用户或组在代理权限队列上执行特定操作所需的 IBM MQ 访问权限级别。
用户操作 Managed File Transfer 访问权限 权限队列 IBM MQ 访问权限

(多平台)

RACF® 访问级别 (access level)

(仅 z/OS

使用 fteStopAgent 命令上的 -m 选项关闭代理程序。 管理 SYSTEM.FTE.AUTHADM1.代理名称 BROWSE 读取
启动来自该代理的文件传输 传输源 SYSTEM.FTE.AUTHTRN1.source_agent_name BROWSE 读取
对此代理程序运行受管调用
取消由相同用户启动的来自该代理的文件传输
启动到该代理的文件传输 传输目标 SYSTEM.FTE.AUTHTRN1.destination_agent_name PUT 更新
取消由相同用户启动的至该代理的文件传输
创建资源监视器 监视 SYSTEM.FTE.AUTHMON1.monitoring_agent_name BROWSE 读取
删除由相同用户创建的资源监视器
删除由任何用户创建的资源监视器 监视操作 SYSTEM.FTE.AUTHOPS1.代理名称 SET 更改
创建调度的传输 调度 SYSTEM.FTE.AUTHSCH1.source_agent_name BROWSE 读取
删除由同一用户创建的调度传输
删除由任何用户或组创建的调度传输 调度操作 SYSTEM.FTE.AUTHOPS1.代理名称 PUT 更新
取消由启动传输的用户或组创建的传输或者由其他用户或组创建的传输 传输操作 SYSTEM.FTE.AUTHOPS1.source_agent_name SYSTEM.FTE.AUTHOPS1.destination_agent_name BROWSE 读取
注: 要授予用户或组许可权以设置用于启动传输的资源监视器或调度传输,用户需要 监视器调度 权限以及 传输 源和 传输 目标权限。

当代理接收到取消文件传输的请求时,代理首先检查请求取消的用户是否与启动传输的用户相同。 如果取消传输的用户与请求该传输的用户不同,那么代理将检查取消的用户是否具有对 SYSTEM.FTE.AUTHOPS1.agent_name 队列的 浏览 许可权。 当请求文件传输的用户与请求取消的用户相同时,按此顺序检查权限可避免代理和队列管理器错误日志中发生意外错误。

用户可以启动一个代理并希望它与另一个代理交互。 两个代理的交互方式取决于用户在另一个代理权限队列上具有的访问权限级别。
表 2. 启动代理的用户在另一个代理权限队列上需要的 IBM MQ 访问权限级别,以便可以在代理之间传输文件。
代理操作 Managed File Transfer 访问权限 权限队列 IBM MQ 访问权限

(多平台)

RACF 访问级别 (access level)

(仅 z/OS

接收的传输来自于

源代理程序

代理源 SYSTEM.FTE.AUTHAGT1.source_agent_name BROWSE 读取
发送传输至

目标代理程序

代理目标 SYSTEM.FTE.AUTHAGT1.destination_agent_name PUT 更新
[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月]从代理程序启动受管调用 代理源 SYSTEM.FTE.AUTHTRN1.代理名称 BROWSE 读取

配置用户权限管理

要授权用户在代理上执行操作,请在相关的权限队列上授予该用户适当权限。 要向用户授予权限,请完成以下步骤:

  1. 在代理队列管理器所在系统上创建用户,该用户与您要授予其执行代理操作权限的用户同名。 该用户无需处于活动状态。
  2. 在相关的权限队列上授予用户适当的权限。 如果您正在使用 AIX®Linux®Windows,那么可以使用 setmqaut 命令。
  3. 刷新队列管理器的安全配置。 您可以使用 REFRESH SECURITY MQSC 命令。

示例

[z/OS]z/OS 系统上不使用 setmqaut 命令。 对于 z/OS,请使用 RACF 代替。 请参阅 z/OS上设置安全性 以获取更多信息。

[IBM i]IBM i 系统上不使用 setmqaut 命令。 对于 IBM i,请参阅 IBM MQ 对象的访问权限,其中描述了如何完成 IBM MQ 对象的授权。 在 IBM i上提供了三个相关 CL 命令: Grant MQ Object Authority (GRTMQMAUT)Revoke MQ Object Authority (RVKMQMAUT)Refresh MQ Authority (RFRMQMAUT)

某用户(组 requestor_group 的成员)要在 AGENT1 上设置资源监视器,以将文件从用户 user1(组 user1_group 的成员)下运行的 AGENT1 传输到用户 user2(组 user2_group 的成员)下运行的 AGENT2。 AGENT1 连接到 QM1;AGENT2 连接到 QM2。 两个代理均已启用权限检查。 为此,请执行以下步骤:
  1. requestor 必须具有 AGENT1 上的监视权限。 通过在正运行 QM1 的系统上运行以下命令来设置此权限:
    setmqaut -m QM1 -t queue -n SYSTEM.FTE.AUTHMON1.AGENT1 -g requestor_group +browse
  2. requestor 必须具有 AGENT1 上的传输源权限。 通过在正运行 QM1 的系统上运行以下命令来设置此权限:
    setmqaut -m QM1 -t queue -n SYSTEM.FTE.AUTHTRN1.AGENT1 -g requestor_group +browse
  3. requestor 必须具有 AGENT2 上的传输目标权限。 通过在正运行 QM2 的系统上运行以下命令来设置此权限:
    setmqaut -m QM2 -t queue -n SYSTEM.FTE.AUTHTRN1.AGENT2 -g requestor_group +put
  4. user2 必须具有 AGENT1 上的代理源权限。 通过在正运行 QM1 的系统上运行以下命令来设置此权限:
    setmqaut -m QM1 -t queue -n SYSTEM.FTE.AUTHAGT1.AGENT1 -g user2_group +browse
  5. user1 必须具有 AGENT2 上的代理目标权限。 通过在正运行 QM2 的系统上运行以下命令来设置此权限:
    setmqaut -m QM2 -t queue -n SYSTEM.FTE.AUTHAGT1.AGENT2 -g user1_group +put

记录

如果已启用用户权限检查,那么失败的权限检查会导致将未经授权的日志消息发布到协调队列管理器。 有关更多信息,请参阅 MFT 消息格式以获取安全性

有关用户权限的消息可写入代理事件日志。 您可通过在代理属性文件中设置 logAuthorityChecks 属性来配置写入代理事件日志的信息量。 缺省情况下,权限检查记录的级别为 None。 您还可将 logAuthorityChecks 的值设置为 Failures,以指定仅报告失败的授权检查,或者将该值设置为 All 以指定报告失败和成功的授权检查。

有关更多信息,请参阅 MFT agent.properties 文件