2010-12-15 40 views
6

J'essaie de me connecter à IBM Websphere MQ Server à partir d'IBM Websphere Application Server.MQJMS2013 authentification de sécurité incorrecte

Je reçois l'erreur suivante:

MQJMS2013: invalid security authentication supplied for MQQueueManager 

Ce que je comprends est, cela est dû à des informations d'identification de sécurité invalides par WAS lors de la connexion au gestionnaire MQ.

J'ai essayé une combinaison différente de fournir le mot de passe administrateur MQ par ex.

  1. Fournissez l'authentification J2C à MQ Connection Factory.
  2. Indiquez le nom d'utilisateur et le mot de passe de l'administrateur MQ aux files d'attente.
  3. Fourniture d'un nom d'utilisateur vide.
  4. Combinaison des trois ci-dessus.

En outre, comme mentionné dans certains des postes, j'ai essayé le type de transport comme 'Reliure' ainsi que 'Client' pour QueueConnectionFactory.

Veuillez nous suggérer.

Répondre

1

Enfin, il a fonctionné, après 2 jours d'application de combinaisons.

Pour aider les autres (et moi-même sans doute aussi à l'avenir), la question suivante est:

Nous avons été la configuration d'IBM Websphere Application Server avec le serveur IBM Websphere MQ. Nous avons créé une fabrique de connexions par files d'attente, des files d'attente et des ports d'écoute à droite. Nous recevions l'exception en question à plusieurs reprises.Comment cela a-t-il fonctionné? Lorsque vous démarrez votre serveur d'applications, l'utilisateur qui démarre le serveur doit avoir accès à MQ. c'est-à-dire que l'utilisateur devrait faire partie du groupe MQM. Juste pour ajouter, après avoir ajouté le groupe à l'utilisateur, n'oubliez pas de redémarrer le serveur MQ car le serveur MQ actualise les droits après le redémarrage uniquement.

Espérons que cela aide.

+1

Liaisons ou mode client? Au mieux (mode bindings), vous venez de donner l'autorisation au serveur d'application d'administrer WMQ et d'exécuter les commandes OS en tant qu'ID mqm. C'est OK dans les applications triviales mais cela équivaut à donner à une application des droits d'administrateur DBA complets que la plupart des magasins ne feraient jamais. Pourquoi ils le font avec WMQ est un mystère pour moi. Dans le pire des cas (liaisons client), vous venez d'attribuer ce privilège administratif à des utilisateurs distants anonymes. Fondamentalement * n'importe qui * avec une route IP vers le QMgr peut l'administrer et exécuter des commandes OS. Était-ce ce que vous vouliez? Voir http://bit.ly/17oKEc –

+1

En passant, avec l'un ou l'autre des outils auxquels je me suis connecté dans ma réponse, vous auriez réglé cela en deux minutes au lieu de deux jours. Donc, pour aider les autres (et probablement vous aussi à l'avenir), installez un de ces outils ou les deux maintenant afin de ne pas tourner la roue la prochaine fois. Et si vous avez un quelconque intérêt à sécuriser WMQ, utilisez des ID à faible privilège et des commandes setmqaut plutôt que de coller l'application dans le groupe mqm et verrouillez tous les canaux entrants avec MCAUSER à faible privilège! Ce que vous avez fait "fonctionne" dans le sens où l'application peut maintenant envoyer des messages mais ce n'est presque jamais la bonne réponse. –

+0

+1 Vous avez eu! Malheureusement, je ne suis pas l'expert du serveur MQ et de la configuration. Travailler dans l'industrie des services, où tout est CRITIQUE, nous avons juste besoin de faire fonctionner les choses. En général, comprenez l'aspect sécurité que vous avez mentionné, mais comme vous l'avez mentionné, ce n'est pas très important pour mon environnement dès maintenant! Merci encore! –

2

Un problème est que le MQJMS2013 peut n'avoir rien à voir avec le QMgr.

Une façon de déterminer s'il s'agit réellement d'une exception d'autorisation WMQ consiste à activer les événements d'autorisation sur le QMgr et à recréer l'erreur. S'il s'agit d'un problème d'authentification WMQ, le message d'événement atterrira dans la file d'attente SYSTEM.ADMIN.QMGR.EVENT. Il contiendra l'ID de l'utilisateur, l'objet sur lequel l'appel a échoué, l'appel de l'API qui a échoué et toutes les options utilisées pour l'appel. Si vous utilisez SupportPac MO71, il formatera le message d'événement pour vous. Si vous utilisez WMQ Explorer, vous pouvez installer SupportPac MS0P pour formater les messages d'événement.

Si vous n'obtenez pas de message d'événement, la connexion n'atteint pas WMQ! Dans ce cas, rien de ce que vous faites avec les comptes, les groupes, setmqaut et d'autres configurations spécifiques à WMQ ne vous aidera et je vous suggérerais enabling tracing.

En mode de liaison, l'ID doit correspondre à et correspondre à l'ID exécuté par la machine virtuelle Java. En mode client, un autre moyen de diagnostiquer est de régler le MCAUSER du canal sur une bonne valeur connue. Le MCAUSER de la chaîne remplace tout ID transmis par le serveur d'applications et doit toujours être défini sur un compte avec un faible privilège. Pour les diagnostics, réglez TEMPORARILY sur 'mqm' et, si la connexion fonctionne, cela isolera le problème des problèmes d'authentification WMQ.

+0

Semble que cette information est très utile. J'ai trouvé le message sur la file d'attente SYSTEM.ADMIN.QMGR.EVENT. Mais les détails du message sont "MQGET terminé avec le code de raison 2080". Essayer d'enlever le message et recommencez! –

+1

Le 2080 est MQRC_TRUNCATED_MSG_FAILED ce qui signifie que vous utilisez probablement amqsget. Si vous utilisez les outils mentionnés ci-dessus, ils recevront le message entier * et * le formateront en texte lisible par l'homme (les messages d'événement sont PCF). Si vous voulez un moyen rapide et grossier d'obtenir le message, utilisez amqsbcg qui vous donnera un vidage hexadécimal et ensuite vous pouvez utiliser les fichiers d'en-tête C et une calculatrice hexadécimale pour le décoder. –