连接认证: 配置
可以将队列管理器配置为使用提供的用户标识和密码来检查用户是否有权访问资源。
在队列管理器上开启连接认证
- IDPWOS
- 指示队列管理器使用本地操作系统来认证用户标识和密码。
- IDPWLDAP
- 指示队列管理器使用 LDAP 服务器来认证用户标识和密码。
IDPWOS 和 IDPWLDAP 在其多个属性中相似,在此处进行了描述。 稍后将考虑其他属性。
ALTER QMGR CONNAUTH(USE.PW)
DEFINE AUTHINFO(USE.PW) +
AUTHTYPE(IDPWOS) +
FAILDLAY(10) +
CHCKLOCL(OPTIONAL) +
CHCKCLNT(REQUIRED)
REFRESH SECURITY TYPE(CONNAUTH)
其中 CONNAUTH 中的 USE.PW 是与 AUTHINFO 定义匹配的字符串。- NONE
- 关闭检查。
- 可选
- 确保如果用户标识和密码由应用程序提供,那么它们是有效的对,但并非必须提供这些用户标识和密码。 例如,在迁移期间,此选项可能很有用。
- Required
- 要求所有应用程序提供有效的用户标识和密码。 另请参阅以下注释。
- REQDADM
- 特权用户必须提供有效的用户标识和密码,但非特权用户被视为具有 OPTIONAL 设置。 另请参阅以下注释。
(在 z/OS 系统上不允许此设置。)
将 CHCKLOCL 设置为 REQUIRED 或 REQDADM 意味着您无法使用 runmqsc (错误 AMQ8135: 未授权) 本地管理队列管理器,除非用户在 runmqsc 命令行上指定 -u UserId 参数。 通过该设置, runmqsc 将在控制台上提示输入用户的密码。
同样,在本地系统上运行 IBM® MQ Explorer 的用户在尝试连接到队列管理器时将看到错误 AMQ4036 。 要指定用户名和密码,请右键单击本地队列管理器对象,然后选择 从菜单中获取。 在 用户标识 部分中,输入要使用的用户名和密码,然后单击 确定。
类似注意事项适用于与 CHCKCLNT的远程连接。
对于已迁移的队列管理器, CONNAUTH 为空白,但设置为 SYSTEM.DEFAULT.AUTHINFO.IDPWOS 。 缺省情况下,上述 AUTHINFO 定义将 CHCKCLNT 设置为 REQDADM 。
因此,您需要为使用特权用户标识进行连接的任何现有客户机提供正确的操作系统密码。
配置详细程度
除了用于开启用户标识和密码检查的 CHCKLOCL 和 CHCKCLNT 之外,还对 CHLAUTH 规则进行了增强,以便可以使用 CHCKCLNT进行更具体的配置。
DEFINE AUTHINFO(USE.PW) AUTHTYPE(xxxxxx) +
CHCKCLNT(OPTIONAL)
SET CHLAUTH('*') TYPE(ADDRESSMAP) +
ADDRESS('*') USERSRC(CHANNEL) +
CHCKCLNT(REQUIRED)
SET CHLAUTH('*') TYPE(SSLPEERMAP) +
SSLPEER('CN=*') USERSRC(CHANNEL)
错误通知

在将错误返回到应用程序之前,将在 FAILDLAY 属性指定的秒数内保留失败的认证。 这为重复尝试连接的应用程序提供了一些保护。
- 应用程序
- 将返回标准 IBM MQ 安全性错误 RC2035 -MQRC_NOT_AUTHORIZED。
- 管理员
- IBM MQ 管理员会看到错误日志中报告的事件,因此可以看到应用程序已被拒绝,因为用户标识和密码未能通过检查,而不是因为例如没有连接权限。
- 监测工具
- 如果通过向 SYSTEM.ADMIN.QMGR.EVENT 队列:
此 "未授权" 事件是类型 1 连接事件,并提供与其他类型 1 事件相同的字段以及提供的附加字段 MQCSP 用户标识。 事件消息中未提供密码。 这意味着事件消息中有两个用户标识: 应用程序运行所使用的标识以及应用程序为用户标识和密码检查提供的标识。ALTER QMGR AUTHOREV(ENABLED)
与授权的关系

ALTER QMGR CONNAUTH(USE.PWD)
DEFINE AUTHINFO(USE.PWD) +
AUTHTYPE(xxxxxx) +
CHCKLOCL(OPTIONAL) +
CHCKCLNT(REQUIRED) +
ADOPTCTX(YES)
- ADOPTCTX (是)
- 将使用您通过密码认证的用户标识对应用程序进行所有授权检查,方法是选择在连接的剩余时间内采用上下文作为应用程序上下文。注意: 使用 ADOPTCTX (YES) 和操作系统用户标识时,必须确保所采用的用户标识不超过用户标识的最大长度。 请参阅 用户标识 以获取更多信息。
- ADOPTCTX (NO)
- 应用程序提供用户标识和密码以用于在连接时对其进行认证,但随后继续使用应用程序运行时所使用的用户标识进行将来的授权检查。 如果您计划使用其他机制 (例如通道认证记录) 来分配 消息通道代理程序用户标识 (MCAUSER),那么您可能会发现此选项在迁移时很有用。
在认证信息对象上使用 ADOPTCTX(YES) 参数时,除非在 qm.ini 文件的 channel 节中设置 ChlauthEarlyAdopt 参数,否则无法采用其他安全上下文。
fred 已登录。 配置了以下两个 CHLAUTH 规则:SET CHLAUTH('MY.CHLAUTH') TYPE(ADDRESSMAP) DESCR('Block all access by
default') ADDRESS('*') USERSRC(NOACCESS) ACTION(REPLACE)
SET CHLAUTH('MY.CHLAUTH') TYPE(USERMAP) DESCR('Allow user bob and force
CONNAUTH') CLNTUSER('bob') CHCKCLNT(REQUIRED) USERSRC(CHANNEL)发出以下命令,目的是将该命令作为用户 bob的已采用安全上下文进行认证:runmqsc -c -u bob QMGR实际上,队列管理器使用 fred而不是 bob的安全上下文,并且连接失败。有关 ChlauthEarlyAdopt的更多信息,请参阅 通道节的属性。