Benutzer-ID

Serviceintegrationsnachrichten enthalten zwei Benutzer-IDs: eine Systembenutzer-ID und eine Anwendungsbenutzer-ID. IBM MQ Sie können das user identifier Feld des Nachrichtenbeschreibers „ IBM MQ “ (MQMD) anhand der Systembenutzer-ID festlegen, die in der Service-Integrationsnachricht verwendet wird. Bei der Zusammenarbeit mit „ IBM MQ “ über einen „ IBM MQ “-Server sind zusätzliche Schritte erforderlich, um die Benutzer-ID der Service-Integrationsanwendung beizubehalten.

Serviceintegrationsnachrichten enthalten zwei Benutzer-IDs:
  • Systembenutzer-ID: Im Allgemeinen wird die Systembenutzer-ID auf die ID des Benutzers gesetzt, der die Nachricht erzeugt. Sie wird angegeben, wenn der Benutzer eine Verbindung zum Bus herstellt. Die in der Nachricht gespeicherte Systembenutzer-ID kann vom Anwendungscode nicht geändert werden.
  • Anwendungsbenutzer-ID - Diese ID entspricht der Nachrichteneigenschaft "JMSXUserID" und kann vom Anwendungscode gesetzt werden.

IBM MQ kann so konfiguriert werden, dass das Feld „Benutzerkennung“ des Message Descriptors (MQMD) von „ IBM MQ “ anhand der in der Service-Integrationsnachricht verwendeten Systembenutzer-ID festgelegt wird. Es gibt jedoch nur ein einziges Feld für Benutzer-IDs im MQMD. Wenn das Ziel die Verwendung von „ MQRFH2 “-Headern zulässt, wird die in der Nachricht enthaltene Benutzer-ID der Anwendung unter Verwendung des Schlüssels „ jsApiUserId “ in den <sib> Ordner des „ RFH2 “-Headers abgelegt.

Wenn eine Nachricht von Warteschlangen- oder Vermittlungspunkten empfangen wird, die auf einem Mitglied des „ IBM MQ “-Serverbusses lokalisiert sind, werden je nachdem, ob die zugehörige „ IBM MQ “-Serverdefinition die Vertrauenswürdigkeit der Benutzer-IDs zulässt, die folgenden Aktionen ausgeführt:
  • Wenn der Server „ IBM MQ “ so konfiguriert ist, dass er Benutzer-IDs vertraut, wird die Systembenutzer-ID in der Service-Integrationsnachricht aus der Benutzer-ID im MQMD übernommen.
  • Wenn der „ IBM MQ “-Server nicht so konfiguriert ist, dass er Benutzer-IDs vertraut, wird die Systembenutzer-ID in der Service-Integrationsnachricht auf den Namen des „ IBM MQ “-Servers gesetzt, von dem die Nachricht empfangen wurde.
Stellen Sie sich ein Beispiel vor, in dem die folgenden Objekte konfiguriert wurden:
  • Ein „ IBM MQ “-Server, QM1
  • Ein Element des Serverbusses „ IBM MQ “, dessen trustUserIds Attribut auf FALSE gesetzt ist.
  • Ein Ziel vom Typ „Warteschlange“, Q1, das dem Server-Bus-Element „ IBM MQ “ zugewiesen ist.
Wenn Sie diese Objekte konfiguriert haben und eine Nachricht von Q1 empfangen wird, wird die Benutzer-ID immer auf QM1 gesetzt (und die Benutzer-ID ignoriert, die in der Nachricht enthalten ist). Dies geschieht, weil das Server-Bus-Element „ IBM MQ “ den in eingehenden Nachrichten empfangenen Benutzer-IDs nicht vertraut, sondern stets den Namen des „ IBM MQ “-Servers verwendet, von dem die Nachricht stammt.

Unabhängig davon, wie die Systembenutzer-ID der Serviceintegrationsnachricht gesetzt wird, die Anwendungsbenutzer-ID wird immer aus dem RFH2-Wert des Schlüssels "jsApiUserId" gebildet. Wenn dieser Schlüssel nicht vorhanden ist, weil das Wertepaar nicht im Ordner <sib> des Headers "RFH2" enthalten ist oder weil die Nachricht keinen Header "RFH2" enthält, wird dieses Feld nicht gesetzt.

Da Sicherheitsbenutzer-IDs im Nachrichtendeskriptor "MQMD" transportiert werden, sind sie in der Länge auf 12 Zeichen beschränkt. Längere Benutzer-IDs werden abgeschnitten.