当前位置: 首页 > 面试题库 >

WebSphere MQ v7.1安全用户凭证

严修谨
2023-03-14
问题内容

运行WebSphere MQ Server v7.1的Linux Server Box:

我在Linux中创建了一个属于’mq-users’组的用户’mq-
user’。然后,我创建了队列管理器QM_TEST,并使用MQSC发出以下命令来创建队列并设置安全性:

SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('mq-user') AUTHADD(ALL)
SET AUTHREC PROFILE(SYSTEM.MQEXPLORER.REPLY.MODEL) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(INQ,DSP,GET)
SET SET AUTHREC PROFILE(SYSTEM.ADMIN.COMMAND.QUEUE) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(INQ,DSP,PUT)
DEFINE CHANNEL (TEST_CHANNEL) CHLTYPE (SVRCONN) TRPTYPE (TCP) MCAUSER('mq-user')
SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS(*) MCAUSER('mq-user')
DEFINE QLOCAL (TEST_QUEUE)
SET AUTHREC PROFILE(TEST_QUEUE) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(ALL)
DEFINE LISTENER (TEST_LISTENER) TRPTYPE (TCP) CONTROL (QMGR) PORT (1414)
START LISTENER (TEST_LISTENER)

运行WebSphere MQ Client v7.1和WebSphere MQ Explorer的Linux Client Box:

我以我的用户名(arrehman)登录,该用户名不属于mq-users组。但是,我可以通过Java应用程序和MQ
Explorer客户端访问我在上面创建的队列, 而无需传递任何用户凭证 。如果安全性有效,为什么会这样?

需要任何其他详细信息,请让我知道。谢谢。


问题答案:

这行:

SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS(*) MCAUSER('mq-user')

说以下内容:

  • 对于连接请求TEST_CHANNEL
  • 源自 任何 IP地址…
  • 将MCAUSER设置为 mq-user

换句话说,启用通道,以使任何连接都继承特权,mq- user无论它们起源于何处以及它们所呈现的身份如何。因此,您看到的行为是基于上述CHLAUTH规则的预期行为。

列出的规则还有其他一些问题:

  • 使用PRINCIPAL而不是GROUP。在非Windows服务器上,如果指定PRINCIPAL发生的情况,则QMgr将查找该ID,查询其主要组,然后根据该组设置授权。因此,如果mq-users具有staff或的主要组users,则该组将获得授权,而mq-users不是您想要的。始终使用,group以便通过setmqaut或获得预期的结果AUTHREC
  • ALL在QMgr上进行授予使ID /组具有管理性。QMgr级别的特权之一是SET,具有SET权限的组中的任何用户都可以设置授权控制列表等。因此,即使你只授予AUTHADD(INQ,DSP,PUT)mq-usersID可以提交PCF命令授予所有访问所有对象。如果您只需要批准,CONNECTINQUIRE在QMgr上。
  • 有一个假设(实际上是黑体)表明您将需要通过用户凭证。请注意,如果您提供了用户ID和密码,WMQ不会对其进行验证。它接受您声明的ID。密码字段可用于退出,可用于根据LDAP或本地OS验证ID和密码。可以从第三方购买或退出此类出口,但是基本WMQ不会使用密码进行任何操作。如果您USERSRC(CHANNEL)在映射上指定了ID,那么您的ID将被使用,并且很可能被拒绝。但是拒绝的原因可能是因为它在mqm组中(默认CHLAUTH规则阻止了它),或者是因为它所在的组中没有AUTHREC记录。

欲了解更多有关硬化WMQ,还有一些收集的资源在这里。该 硬化的WebSphere MQ
表现为V7.0。尽管v7.1具有新的控件,但其原理保持不变:

  • 使用IP过滤(对于连接来自锁定数据中心的应用或QMgr),SSL / TLS和/或出口对连接进行身份验证
  • MCAUSER通过在通道中对其进行硬编码或通过使用出口或CHLAUTH规则动态设置它来将已认证的身份映射到一个值
  • 管理连接和高价值应用程序应使用TLS进行身份验证


 类似资料:
  • 因此,我正在尝试在我的本地主机上获取服务应用程序凭据,并且遇到了一些问题。我创建并下载了json密钥,我想保护它们,而不是让它们变成纯文本。 我想知道最好的方法。我有这个代码: 这里的问题是我的JSON文件在我的存储库中以纯文本形式公开。

  • 我开发了一个服务(service),它自动化了用户可以在另一个第三方站点(第三方站点)上执行的某些操作。 “我的服务”为用户提供以下功能: > 用户在服务中注册 用户向服务提供其第三方站点用户名/密码 该服务使用该凭据代表用户登录到第三方站点 该服务将第三方站点发布的cookie存储在其数据库中 从现在起,该服务开始使用以前存储的cookie(第三方站点的用户名/密码不会保存在任何位置)代表用户定

  • 问题内容: 攻击 在凭证存储的情况下,一种可能的威胁模型是攻击者,它具有以下能力: 检查任何(用户)进程内存 读取本地(用户)文件 AFAIK,这种攻击的共识是无法阻止(因为必须将凭据存储在内存中,程序才能实际使用它们),但是有两种技术可以缓解这种攻击: 最小化敏感数据在内存中的存储时间 一旦不再需要数据,将覆盖内存 通过模糊措施来处理内存中的数据,继续移动数据以及其他安全性 特别是Python

  • 问题内容: 在我的网站上,我有一个名为的变量,其中包含来自表单的输入。然后,我在用户页面上显示此变量(通过echo)。 使用此变量来避免任何安全风险的最佳方法是什么?我使用,但这还不够。 此变量也将保存到MySQL数据库。 问题答案: 为避免严重的安全问题,必须执行两项非常重要的操作。 您需要先对用户输入进行转义,然后再将其放入SQL查询中。转义表示转义所有特殊字符,如; 幸运的是,有一个函数已经

  • 我正在开发一个在JBOSS Wildfly下运行的JSF2应用程序,它利用了Java的JAAS安全机制。 一切都按预期工作,我可以使用 request.login(用户名,密码)机制登录。 我还需要授权设备(我已使用cookie实现)作为登录过程的一部分。我试图实施的过程如下: 验证用户名和密码(但不登录) 检查设备授权并重定向到授权过程页面(如果尚未授权)。 登录(如果授权成功) 除非用户被授权

  • 我最近一直在寻找一个如何在CentOS 7中安全保存git凭证的解决方案。 我想保存多个git存储库的凭据。 我想出的解决方案是将侏儒密钥环与任何版本的git一起使用。但我遇到了一些问题。我发现很多帖子说这在Redhat 7或Centos 7中不是一个好的解决方案。,它将被弃用。 但这对我不起作用,使用git时出错: 与gnome-keyring-daemon通信时出错 然后我把git升级到最后一