2017-02-21 2 views
2

Ich bin neu zu IBM WebSphere MQ. Ich betreibe es in einem docker Container. Die Benutzer 'sampleuser' und 'root' gehören zur Gruppe 'mqm' innerhalb des Containers. Ich bin in der Lage, vom Host als 'root' Benutzer und als 'sampleuser' auf den MQ zuzugreifen (Ich habe 'sampleuser' auch im Host erstellt).Ermöglichen Sie anonymen Zugriff auf IBM WebSphere MQ

Ich möchte die anonyme Authentifizierung aktivieren, so dass sie unabhängig von der Client-Benutzer-ID in der Lage sein sollten, auf den MQ zuzugreifen. Ich würde zwar MCAUSER('sampleuser') würde es für mich tun. Aber es funktioniert nicht. Ich erhalte den Fehler AMQ4036 (nicht autorisiert) vom Eclipse-IBM-Explorer. Bitte um Rat.

ALTER QMGR PSNPRES(SAFE) 
ALTER QMGR PSMODE (ENABLED) 
DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('sampleuser') REPLACE 

Update # 1 ich den Code aktualisiert privilegierten Benutzer zu ermöglichen. Scheitert aber immer noch.

ALTER QMGR PSNPRES(SAFE) 
ALTER QMGR PSMODE (ENABLED) 

SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST('*NOACCESS') 

DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('sampleuser') REPLACE 

Hier ist das Protokoll, das ich habe.

EXPLANATION: 
The user ID 'sampleuser' and its password were checked because the user ID is 
privileged and the queue manager connection authority (CONNAUTH) configuration 
refers to an authentication information (AUTHINFO) object named 
'SYSTEM.DEFAULT.AUTHINFO.IDPWOS' with CHCKCLNT(REQDADM). 

This message accompanies a previous error to clarify the reason for the user ID 
and password check. 
ACTION: 
Refer to the previous error for more information. 

Ensure that a password is specified by the client application and that the 
password is correct for the user ID. The authentication configuration of the 
queue manager connection determines the user ID repository. For example, the 
local operating system user database or an LDAP server. 

To avoid the authentication check, you can either use an unprivileged user ID 
or amend the authentication configuration of the queue manager. You can amend 
the CHCKCLNT attribute in the CHLAUTH record, but you should generally not 
allow unauthenticated remote access. 

Update # 2 Basierend auf JohnMC Antwort und refernce zu Provide anonymous access to IBM WebSphere MQ ich es endlich geschafft arbeiten ..:)

ALTER QMGR PSNPRES(SAFE) 
ALTER QMGR PSMODE (ENABLED) 
ALTER QMGR CHLAUTH(DISABLED) 
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST('*NOACCESS') 
DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('sampleuser') REPLACE 
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL) 
REFRESH SECURITY TYPE(CONNAUTH) 
+0

Ich empfehle, die Fehlerprotokolle des Warteschlangenmanagers zu überprüfen, um den Grund für den Fehler zu finden. –

+0

Wenn Sie im Fehlerprotokoll des Warteschlangenmanagers nachsehen, wird Ihnen genau der Grund für den Fehler mitgeteilt, ob es sich um "Channel auth blocked you" oder "unknown user" oder "user hat nicht die korrekte Berechtigung" oder "Der Benutzer hat kein Kennwort angegeben, wenn der Warteschlangenmanager so konfiguriert ist, dass er einen" usw. "erwartet. Wie Sie sehen, gibt es eine Reihe von Gründen, weshalb Ihnen das Fehlerprotokoll sehr wichtig ist. –

+0

Ich habe die Protokolle hinzugefügt. – Muthukumar

Antwort

4

Ich werde annehmen, dass Sie eine unterstützte Version von MQ verwenden (7.1 oder später).

Mit MQ 7.1 und höher wird ein neuer Warteschlangenmanager standardmäßig mit einigen CHLAUTH-Regeln ausgeliefert, von denen eine die Verbindungen zu SVRCONN-Kanälen von Benutzern mit MQ-Verwaltungsautorität deaktiviert. In diesem Fall haben Sie den Benutzer sampleuser im MCAUSER des Kanals platziert. Da sampleuser ein Mitglied der Gruppe mqm ist, ist es standardmäßig nicht zulässig.

Basierend auf dem Setup, das Sie bei einer erlaubten Verbindung anbieten, erlauben Sie jedem Benutzer, der sich über das Netzwerk mit Ihrem MQ Listener verbinden kann, den Warteschlangenmanager zu verwalten, Warteschlangen zu definieren, Warteschlangen zu löschen, Berechtigungen hinzuzufügen usw .

Sehen Sie sich diese Antwort von T.Rob an, um zu erfahren, wie dies funktioniert, ohne die Sicherheit "Unable to connect to queue manager in WebSphere MQ 7.1" zu deaktivieren.

Ich habe auch eine andere Stelle mit einem ähnlichen Informationen "C# MQ Connect get Error 2035 but Java MQ Connect works well"


Update # 1

Die Protokolle zeigen, dass Sie eine Verbindung Authentifizierungsfehler bekommen. Bei MQ 8.0 und höher ist der Warteschlangenmanager standardmäßig so konfiguriert, dass für MQ-Verwaltungsbenutzer ein gültiges Kennwort erforderlich ist, da sampleuser Teil der MQM-Gruppe ist, die in diese Kategorie fällt.

Sie können MQ Explorer so konfigurieren, dass beim Herstellen einer Verbindung zum Warteschlangenmanager ein Benutzername und ein Kennwort gesendet werden.

  1. Rechtsklicken Sie den WS-Manager Name
  2. Select Connection Details
  3. Wählen Sie Eigenschaften ...
  4. Select Userid
  5. Markieren Sie das Kästchen neben „Enable Benutzeridentifikation“
  6. im Benutzer-ID-Feld, geben Sie bitte
  7. Wenn Sie es als „Eingabeaufforderung für Kennwort“ lassen Sie es fragt Sie bei jedem Öffnen MQ Explorer das Kennwort, wenn Sie versuchen, eine Verbindung mit dem Warteschlangenmanager herzustellen. Sie haben die Möglichkeit, "Gespeichertes Passwort verwenden" auszuwählen und dann das Passwort einzugeben.

ich Sie nicht diesen empfehlen, aber wenn Sie wollen Sicherheit deaktivieren und niemand gestattet, als MQ-Administrator Ihres WS-Manager einer Verbindung mit einem gültigen Passwort sofern Sie dies mit dem folgende deaktivieren Befehl.

ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL) 
REFRESH SECURITY TYPE(CONNAUTH) 
+0

Danke. Ich habe versucht, den Code entsprechend zu ändern, um nicht autorisierte anonyme Benutzer zu erlauben. Scheitert aber immer noch. Irgendwelche Gedanken. Ich habe die Frage mit Protokollen aktualisiert. – Muthukumar