我是IBM Websphere Mq的“新手”,我将尝试提供尽可能多的详细信息。

我已经在运行于Vmware Workstation的Windows Server 2003上安装了Websphere MQ 7.1。主机正在运行带有Websphere MQ客户端和我的ASP.NET应用程序的Windows 7。 (我的应用程序应该通过SVRCONN channel 连接到Windows Server 2003 Websphere的队列管理器,安装在主机上的Websphere客户端仅用于测试目的,将WMQ客户端连接到WMQ Server会导致AMQ4036访问未授权错误,从而导致结论服务器配置需要!)

两个系统都可以互相ping通,并且位于同一本地网络上。 (我是否还提到了端口1415已打开并且服务器虚拟机上正在运行TCP监听器?)

ASP.NET代码段:

queueManager = new MQQueueManager(queueManagerName, queueProperties);

,其中queueManagerName与服务器的队列管理器和queueProperties匹配,如下所示:
queueProperties[MQC.HOST_NAME_PROPERTY] = "192.168.203.128";

queueProperties[MQC.PORT_PROPERTY] = 1415;

queueProperties[MQC.CHANNEL_PROPERTY] = "QM_TEST.SVRCONN";

queueProperties[MQC.USER_ID_PROPERTY] = "";

queueProperties[MQC.PASSWORD_PROPERTY] = "";


编译时出现,我得到MQRC_NOT_AUTHORIZED异常,并且此以下在服务器端的AMQERR01.log中登录(注意:IBM WMQ以法语安装,日志以法语生成,但是我认为您将设法理解该错误。 )
3/04/2013 21:32:25 - Process(1120.3) User(MUSR_MQADMIN) Program(amqzmur0.exe)
                      Host(HATRIXX-82HDFHA) Installation(Installation1)
                      VRMF(7.1.0.2) QMgr(QM_TEST)

AMQ6287: WebSphere MQ VC:\Program Files\IBM\WebSphere MQ (Installation1).

EXPLICATION :
Informations système WebSphere MQ :
Produit           :- Windows Server 2003, Build 3790: SP1 (MQ Windows 32-bit)
Version           :- C:\Program Files\IBM\WebSphere MQ (Installation1)
Informations hôte :- 7.1.0.2 (p710-002-121029)
ACTION :
Aucun(e).
-------------------------------------------------------------------------------
13/04/2013 21:32:25 - Process(2128.11) User(MUSR_MQADMIN) Program(amqzlaa0.exe)
                      Host(HATRIXX-82HDFHA) Installation(Installation1)
                      VRMF(7.1.0.2) QMgr(QM_TEST)

AMQ8075: L'autorisation a échoué car il est impossible d'obtenir le SID de
l'entité 'hatrix'.

EXPLICATION :
Le gestionnaire des droits d'accès aux objets n'a pas pu obtenir le SID de
l'entité spécifiée. Cet incident peut être dû à l'absence de la machine locale
du domaine (l'entité ne peut donc pas être localisée) ou à l'inexistence de
l'entité.
ACTION :
Vérifiez que l'entité est valide et que tous les contrôleurs de domaine requis
sont disponibles. Il peut être nécessaire de créer l'entité sur la machine
locale.
----- amqzfubn.c : 2227 -------------------------------------------------------
13/04/2013 21:32:25 - Process(2524.7) User(MUSR_MQADMIN) Program(amqrmppa.exe)
                      Host(HATRIXX-82HDFHA) Installation(Installation1)
                      VRMF(7.1.0.2) QMgr(QM_TEST)

AMQ9245: Impossible d'extraire des détails de compte pour l'ID utilisateur de
canal MCA.

EXPLICATION :
WebSphere MQ n'a pas pu extraire des détails de compte pour l'ID utilisateur de
canal MCA Hatrix. Il s'agit de l'ID utilisateur MCA pour le canal
QM_TEST.SVRCONN sur le gestionnaire de files d'attente QM_TEST. Il peut avoir
été défini dans la définition de canal ou fourni par un exit de canal ou un
client.
ACTION :
Vérifiez que l'ID utilisateur est correct et qu'il est défini dans le système
local Windows, le domaine local ou un domaine de confiance. Dans le cas d'un ID
utilisateur de domaine, assurez-vous que que tous les contrôleurs de domaines
nécessaires sont disponibles.
----- cmqxrsrv.c : 1778 -------------------------------------------------------
13/04/2013 21:32:25 - Process(2128.11) User(MUSR_MQADMIN) Program(amqzlaa0.exe)
                      Host(HATRIXX-82HDFHA) Installation(Installation1)
                      VRMF(7.1.0.2) QMgr(QM_TEST)

AMQ8073: Echec de l'autorisation. Le SID ((None)) n'a pas pu être corrélé.

EXPLICATION :
Le gestionnaire de droits d'accès aux objets n'a pas pu faire correspondre le
SID spécifié à des informations connues d'entité et de domaine.
ACTION :
Assurez-vous que l'application fournit un SID reconnu sur ce système, que tous
les contrôleurs de domaines nécessaires sont disponibles et que les règles de
sécurité sont correctement définies.
----- amqzfubn.c : 4351 -------------------------------------------------------

DISPLAY CHLAUTH(QM_TEST.SVRCONN)命令返回:
   CHLAUTH(QM_TEST.SVRCONN)                TYPE(USERMAP)
   DESCR( )                                CUSTOM( )
   ADDRESS(*)                              CLNTUSER(HATRIX)
   MCAUSER( )                              USERSRC(CHANNEL)
   WARN(NO)                                ALTDATE(2013-04-13)
   ALTTIME(13.53.03)
AMQ8878: Affichage des détails relatifs à l'enregistrement d'authentification de
 canal.
   CHLAUTH(QM_TEST.SVRCONN)                TYPE(USERMAP)
   DESCR( )                                CUSTOM( )
   ADDRESS(*)                              CLNTUSER(MQM)
   MCAUSER( )                              USERSRC(CHANNEL)
   WARN(NO)                                ALTDATE(2013-04-13)
   ALTTIME(13.57.59)
AMQ8878: Affichage des détails relatifs à l'enregistrement d'authentification de
 canal.
   CHLAUTH(QM_TEST.SVRCONN)                TYPE(ADDRESSMAP)
   DESCR( )                                CUSTOM( )
   ADDRESS(*)                              MCAUSER(ADMINISTRATEUR)
   USERSRC(MAP)                            WARN(NO)
   ALTDATE(2013-04-13)                     ALTTIME(01.53.52)

(请注意,我已经添加了一些规则,并且USERID Hatrix不存在,出于测试目的,我将其包含在SET CHLAUTH命令中)

我认为这与MCAuser有关,因此我尝试将MCAuser设置为“Administrateur”(这是WMQ上的管理员名称)并连接:
queueProperties[MQC.USER_ID_PROPERTY] = "Administrateur";

仍然给我相同的错误,但是服务器端日志输出不同:
13/04/2013 21:41:18 - Process(1120.3) User(MUSR_MQADMIN) Program(amqzmur0.exe)
                      Host(HATRIXX-82HDFHA) Installation(Installation1)
                      VRMF(7.1.0.2) QMgr(QM_TEST)

AMQ6287: WebSphere MQ VC:\Program Files\IBM\WebSphere MQ (Installation1).

EXPLICATION :
Informations système WebSphere MQ :
Produit           :- Windows Server 2003, Build 3790: SP1 (MQ Windows 32-bit)
Version           :- C:\Program Files\IBM\WebSphere MQ (Installation1)
Informations hôte :- 7.1.0.2 (p710-002-121029)
ACTION :
Aucun(e).
-------------------------------------------------------------------------------
13/04/2013 21:41:18 - Process(2524.8) User(MUSR_MQADMIN) Program(amqrmppa.exe)
                      Host(HATRIXX-82HDFHA) Installation(Installation1)
                      VRMF(7.1.0.2) QMgr(QM_TEST)

AMQ9776: La canal a été bloqué par l'ID utilisateur.

EXPLICATION :
Le canal entrant 'QM_TEST.SVRCONN' a été bloqué à partir de l'adresse
'192.168.203.1' parce que les valeurs actives du canal étaient mappées sur un
ID utilisateur qui devrai t être bloqué. Les valeurs actives du canal étaient
**'MCAUSER(Administrateur) CLNTUSER(Hatrix)'.**
ACTION :
Prenez contact avec l'administrateur système qui examinera les enregistrements
d'authentification de canal pour s'assurer que les paramètres corrects ont été
configurés. Le commutateur ALTER QMGR CHLAUTH permet de contrôler si les
enregistrements d'authentification de canal sont utilisés. La commande DISPLAY
CHLAUTH peut être utilisée pour interroger les enregistrements
d'authentification de canal.
----- cmqxrmsa.c : 1004 -------------------------------------------------------
13/04/2013 21:41:18 - Process(2524.8) User(MUSR_MQADMIN) Program(amqrmppa.exe)
                      Host(HATRIXX-82HDFHA) Installation(Installation1)
                      VRMF(7.1.0.2) QMgr(QM_TEST)

AMQ9999: Le canal 'QM_TEST.SVRCONN' vers l'hôte 'FAIROUZ (192.168.203.1)' s'est
terminé anormalement.

EXPLICATION :
Le programme du canl s'exécutant sous l'ID processus 2524(488) pour le canal
'QM_TEST.SVRCONN' a pris fin anormalement. Le canal est 'FAIROUZ
(192.168.203.1)'. Dans certains cas, son nom ne peut pas être déterminé et il
est représenté par '????'.
ACTION :
Examinez les messages d'erreur précédents du programme de canal dans les
journaux des erreurs afin de déterminer la cause de l'incident. Notez que ce
message peut être totalement exclus ou supprimé en réglant les attributs
"ExcludeMessage" ou "SuppressMessage" sous la strophe "QMErrorLog" dans le
fichier qm.ini. D'autres informations figurent dans le guide d'administration
du système.
----- amqrmrsa.c : 925 --------------------------------------------------------

我不明白的是,ASP.NET的queuemanager属性中USERID和PASSWORD的用途是什么,其中WMQ中标识的USERID是“ Hatrix ”(这是Windows 7帐户的名称)。

我必须在WMQ中创建一个新的USERID“ Hatrix ”才能使我的代码正常工作吗? (我不知道怎么做)

提前致谢,

MqDebug。

最佳答案

第一个问题是QMgr必须能够解析传递给它的ID。这意味着该ID可以在本地定义,也可以在QMgr可以访问的域中定义。通常,在组上授予权限,如果是这样,则也必须由接收方QMgr解决。

现在出现的问题是,QMgr究竟能解决什么问题?当您具有从Windows计算机到Windows计算机上的QMgr的连接时, channel 所传递的ID是Windows SID,它是通用唯一标识符(UUID),而不是文本字符串。同样,该组解析为Windows SID。

因此,例如,您可能在两个Windows框上本地定义了一个名为ADMINISTRATEUR的ID,但它仍然失败。错误将显示所提供的ID为ADMINISTRATEUR,并且该ID未得到授权,并且您可以在dspmqaut命令中清楚地看到ADMINISTRATEUR已得到授权。除了正在发生的情况之外,一台主机上的ADMINISTRATEUR具有其唯一的UUID,而另一台主机上具有相同名称的帐户具有不同的UUID,并且Windows正在查看UUID,而不是文本字符串。

当您在多个位置定义了相同的ID时,QMgr必须能够在它们之间进行区分。如果无法做到,就会发生奇怪和不寻常的事情。

例如,假设您使用MCAUSER('hatrix')定义一个 channel ,然后运行setmqaut -p hatrix。让我们进一步规定,hatrix ID不是在本地定义的,而是在DOMAINADOMAINB中定义的,并且在运行命令时,DOMAINA域服务器在搜索路径中位于第一位。
setmqaut命令将名称hatrix解析为DOMAINA中定义的UUID。

之后,由于网络中的正常 Activity ,DOMAINB上升到域搜索路径中的第一个位置。现在,当MCAUSER('hatrix')尝试连接时,字符串hatrixDOMAINB中解析,这是与setmqaut命令解析的UUID不同的UUID。正常连接的 channel 突然抛出2035错误。

该问题的答案是使setmqaut命令和MCAUSER值都具有所需的域。例如,不管setmqaut -p hatrix@DOMAINA还是MCAUSER('hatrix@DOMAINA')首先出现在搜索路径中,或者即使DOMAINA是在WMQ主机服务器上本地定义的,DOMAINB然后hatrix都将起作用。 (当然,假设hatrix实际上是在DOMAINA中定义的。

通常,您通常不希望在setmqaut命令上使用-p选项。唯一的异常(exception)是Windows主机,然后仅当ID符合上面显示的域或服务器名称时,才异常(exception)。

最后,将 channel 的MCAUSER保留为空白是使您的Windows ID可以流到MCA并用于授权检查的原因。您需要意识到的是,没有身份验证正在进行。是的,Windows客户端确实会发送其Windows SID。但是,如果您在Windows机器上运行Linux VM并与其连接,则没有要传递的SID,因此Windows QMgr会后退以解析ID的字符串值。这意味着任何人都可以通过从非Windows客户端声明所需的ID来以任何ID连接到该 channel 。

因此,请使用证书强烈验证管理连接。对于低特权的连接,请使用CHLAUTH规则或退出设置MCAUSER(而不是让其流经),然后使用setmqaut来确保MCAUSER不受管理。这意味着永远不要将QMgr上的+set和队列上的+crt授予非管理员,并尽可能避免+setid, +setall

有关更多WMQ安全性内容,请转到t-rob.net

关于ibm-mq - 连接到Websphere MQ 7.1时出现MQRC_NOT_AUTHORIZED错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16000324/

10-10 19:22