好的,答案正在打折,今天买一送三! :-) 让我们按顺序来...
1.A. 频道的 MCAUSER 值是执行授权检查的 ID。如果DEFINE CHL() CHLTYPE(SVRCONN) 将 MCAUSER 留空,则连接的客户端可以指定他们希望连接的 ID。如果他们未能指定,WMQ 客户端尝试使用从运行客户端应用程序的工作站看到的客户端用户 ID,并显示该 ID。在通道定义中设置MCAUSER 可防止客户端应用指定该值。
1.B. ADDRESSMAP 规则中的 MCAUSER 用于根据某些识别标准映射 MCAUSER。它说“如果一个连接到达 这个频道 并带有指定的 IP 地址 | 用户名 | SSL 可分辨名称 THEN 使用 this ID 为MCAUSER AND 允许通道在没有其他规则阻止的情况下运行。
如果使用CHLAUTH 映射规则,建议通常将通道的MCAUSER 设置为不可能是用户ID 的值,这样它就不会运行。这样,通道默认为安全状态,除非CHLAUTH 规则将 MCAUSER 覆盖为旨在允许访问的值。 MCAUSER 的典型值曾经是 nobody,直到 Hursley 实验室的 WMQ 策略师 Mark Taylor 建议使用不能是实际用户 ID 的值,例如 no#body。从 WMQ V7.1 开始,值 *NOACCESS 是保留的作品,也是我最近在会议演示中使用的。
2. 是的。 WMQ 基于组进行授权。标准建议是将您的安全要求分解为“admin”、“app1”、“app2”、“monitoring”、“anonymous”等角色。然后为每个需要访问的角色创建一个组。
但访问请求来自唯一标识的主体,而不是来自组。授权检查需要一个帐户进行检查,因此通道中的 MCAUSER 是一个 ID,而授权权限是按组存储的。要将用户与正确的权限相关联,请将其注册到正确的组中。
这是支持职责分离的标准 UNIX 授权模型。资源管理员(WMQ 管理员)授权组。帐户管理员在组中注册用户 ID。两组都需要提供访问权限。在现实世界中,大多数商店不使用职责分离功能,但在很多情况下这是强制性的。
3. 有点。 V7.1 或更高版本的默认 QMgr 根本不允许任何远程连接。这是因为在创建时它没有 AUTHREC 规则,因此非管理员无权访问。默认CHLAUTH 规则阻止管理员进行远程访问。
通过指定的规则,任何人都可以成功连接到$cname频道,并被授权为tcs-mq-user。如果您希望他们以不同的用户 ID具有相同的权限进行连接,那么您需要将该 ID 添加到 mq-user 组,然后设置频道以映射提供的 ID。如果您想强制强制某人连接了哪个 ID,因为您必须按 IP 地址指定映射,或者更好的是,基于他们的证书专有名称。
4. 不可以。如上面#2 中所述,访问请求始终由主体发出,而不是由组发出。 CHLAUTH 规则、MCAUSER 和专有名称映射的全部意义在于解析通道用于授权检查的用户 ID。通道定义的 MCAUSER 是该 ID 解析过程中的安全控制,因此它对 ID 而非组进行操作。
如果您还没有找到该站点,您可能会发现T-Rob.net 很有用。特别是,在链接页面上,我发布了来自会议的所有 WMQ 安全演示文稿以及指向我和其他作者文章的链接。