限制对 MFT 代理程序操作的用户权限
除了使用组来管理对资源的访问权,您还可以启用其他级别的安全性来限制用户可以执行的 Managed File Transfer 代理程序操作。 将代理权限队列上的权限授予用户以给予用户执行特定代理操作的许可权。
启用用户权限管理
要开启用户对代理操作的权限检查,请完成以下步骤:
- 在 agent.properties 文件中,将
authorityChecking的值设置为true。 有关更多信息,请参阅 MFT agent.properties 文件。 - 确保运行代理的用户拥有代理队列管理器的 "IBM® MQ备用用户 (ALTUSER) 权限。
在 "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 来启用用户权限管理时,用户对代理权限队列具有的权限可指定该用户有权执行的操作。
| 用户操作 | 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 队列的 浏览 许可权。 当请求文件传输的用户与请求取消的用户相同时,按此顺序检查权限可避免代理和队列管理器错误日志中发生意外错误。
| 代理操作 | Managed File Transfer 访问权限 | 权限队列 | IBM MQ 访问权限 (多平台) |
RACF 访问级别 (access level) (仅 z/OS) |
|---|---|---|---|---|
| 接收的传输来自于 源代理程序 |
代理源 | SYSTEM.FTE.AUTHAGT1.source_agent_name | BROWSE | 读取 |
| 发送传输至 目标代理程序 |
代理目标 | SYSTEM.FTE.AUTHAGT1.destination_agent_name | PUT | 更新 |
![]() 从代理程序启动受管调用 |
代理源 | SYSTEM.FTE.AUTHTRN1.代理名称 | BROWSE | 读取 |
配置用户权限管理
要授权用户在代理上执行操作,请在相关的权限队列上授予该用户适当权限。 要向用户授予权限,请完成以下步骤:
- 在代理队列管理器所在系统上创建用户,该用户与您要授予其执行代理操作权限的用户同名。 该用户无需处于活动状态。
- 在相关的权限队列上授予用户适当的权限。 如果您正在使用 AIX®, Linux®或 Windows,那么可以使用 setmqaut 命令。
- 刷新队列管理器的安全配置。 您可以使用 REFRESH SECURITY MQSC 命令。
示例
在 z/OS 系统上不使用 setmqaut 命令。 对于 z/OS,请使用 RACF 代替。 请参阅 在 z/OS上设置安全性 以获取更多信息。
在 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。 两个代理均已启用权限检查。 为此,请执行以下步骤:requestor必须具有 AGENT1 上的监视权限。 通过在正运行 QM1 的系统上运行以下命令来设置此权限:setmqaut -m QM1 -t queue -n SYSTEM.FTE.AUTHMON1.AGENT1 -g requestor_group +browserequestor必须具有 AGENT1 上的传输源权限。 通过在正运行 QM1 的系统上运行以下命令来设置此权限:setmqaut -m QM1 -t queue -n SYSTEM.FTE.AUTHTRN1.AGENT1 -g requestor_group +browserequestor必须具有 AGENT2 上的传输目标权限。 通过在正运行 QM2 的系统上运行以下命令来设置此权限:setmqaut -m QM2 -t queue -n SYSTEM.FTE.AUTHTRN1.AGENT2 -g requestor_group +putuser2必须具有 AGENT1 上的代理源权限。 通过在正运行 QM1 的系统上运行以下命令来设置此权限:setmqaut -m QM1 -t queue -n SYSTEM.FTE.AUTHAGT1.AGENT1 -g user2_group +browseuser1必须具有 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 文件。
![[MQ 9.3.0 2022 年 6 月]](ng930cd.gif)
从代理程序启动受管调用