Mustercode 'Security Identity Propagation' ausführen
Zum Ausführen des Mustercodes für die Weitergabe der Sicherheitsidentität (Security Identity Propagation) wird jede einzelne Musternachricht über den entsprechenden Transportempfangsknoten in die Hauptnachrichtenflüsse zur Weitergabe der Sicherheitsidentität eingereiht.
Sie können das Beispielprogramm ausführen, um zu sehen, was in den folgenden Situationen geschieht:
- Die Eingabenachricht von WebSphere MQ enthält ein Benutzeridentitätstoken im MQMD-Nachrichtenheader.
- Die Eingabenachricht von WebSphere MQ enthält mehrere Benutzeridentitätsberechtigungsnachweise im Nachrichtentext.
- Die Eingabenachricht von WebSphere MQ enthält ein Anforderungselement, mit dem der Rechenknoten im Hauptnachrichtenfluss die zugeordneten Identitätsberechtigungsnachweise festlegt.
Die zugeordneten Identitätsberechtigungsnachweise basieren auf dem Benutzeridentitätstoken im MQMD-Header der Eingabenachricht.
- Die Eingabeanforderungsnachricht von HTTP enthält eine Benutzeridentität und ein Kennworttoken.
Die Benutzeridentität und das Kennworttoken sind im Header der HTTP-Basisauthentifizierung enthalten.
Weitere Informationen hierzu finden Sie im Abschnitt Informationen zum Mustercode 'Security Identity Propagation'.
Sollten bei der Ausführung des Mustercodes Probleme auftreten, lesen Sie den Abschnitt Probleme bei der Ausführung von Mustercodes beheben in der WebSphere Message Broker-Dokumentation.
Mustercode mit einer WebSphere MQ-Nachricht ausführen, die ein Benutzeridentitätstoken im MQMD-Nachrichtenheader enthält
Der MQMD-Nachrichtenheader in WebSphere MQ-Nachrichten enthält folgende Einzelinformationen für das Broker-Sicherheitssystem:
- Die Zeichenfolge 'Benutzername' aus dem Feld Benutzer-ID.
- Die Zeichenfolge 'Ausgegeben von' aus dem Feld Name der PUT-Anwendung.
So führen Sie den Mustercode mit der WebSphere MQ-Nachricht aus, die im MQMD-Header ein
Benutzeridentitätstoken enthält:
- Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt 'SecurityIdentitySampleFlowProject'. Erweitern Sie das Verzeichnis Flow Tests und klicken Sie doppelt auf Security_Identity_MQ_ID.mbtest, um die Datei im Testclient zu öffnen.
- Klicken Sie in der Symbolleiste der Nachrichtenfluss-Testereignisse auf In Warteschlange einreihen.
Beachten Sie, dass die XML-Nachricht keine Elemente im Nachrichtentext enthält.
- Erweitern Sie den Header im Abschnitt mit den ausführlichen Eigenschaften.
Beachten Sie, dass als Nachrichtenheader 'Send Identity' (Identität senden) ausgewählt ist.
Wenn Sie im Testclient zur Registerkarte Konfiguration wechseln und MQ-Nachrichtenheader "Send Identity" auswählen, können Sie sich die Details des Headers anzeigen lassen.
Zu diesen Details gehören mqmdUID als Benutzer-ID und Testclient als Name der PUT-Anwendung.
- Klicken Sie auf der Registerkarte Ereignisse auf Nachricht senden.
Die Nachricht wird in die Warteschlange SECURITYIDFROMMQIN eingereiht.
- Sehen Sie sich die Ergebnisse an:
- Rufen Sie die Ergebnisnachricht aus der Warteschlange SECURITYIDFROMMQOUT ab.
- Klicken Sie im Testclient auf Aus Warteschlange entfernen.
- Klicken Sie auf Nachricht abrufen.
Die Ausgabenachricht wird unter 'Nachricht' angezeigt.
- Unter 'PropagatedIdentityReport' werden neue Elemente mit den Details der weitergegebenen Identität angezeigt, die aus der Eingabenachricht an den Nachrichtenfluss 'SecurityIdentityReportFlow' übermittelt wurden.
- Beachten Sie, dass es sich bei der in der Ausgabenachricht gemeldeten Identität um den Benutzernamen 'mqmdUID' handelt.
Da im MQMD kein Feld für das Kennwort vorhanden ist, ist das Feld Kennwort in der Nachricht leer.
Als Aussteller wird ein beliebiger HTTP-Wert angegeben, da der Broker nicht die Eigenschaft des HTTP-Headers 'UserAgent' festlegt.
Mustercode mit einer WebSphere MQ-Nachricht ausführen, die Identitätsberechtigungsnachweise im Nachrichtentext enthält
Da der WebSphere MQ-MQMD nur das Token für den Ausgeber und die Benutzeridentität angeben kann, wurde zur Umgehung dieser Einschränkung ein zusätzlicher MQInput-Knoten bereitgestellt.
Dieser Knoten ist so konfiguriert, dass er eine ganze Reihe von Sicherheitsberechtigungsnachweisen aus Feldern im Nachrichtentext extrahiert.
So führen Sie den Mustercode mit der WebSphere MQ-Nachricht aus, die ein Benutzeridentitätstoken im
Nachrichtentext enthält:
- Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt 'SecurityIdentitySampleFlowProject'. Erweitern Sie das Verzeichnis Flow Tests und klicken Sie doppelt auf Security_Identity_MSG_ID.mbtest, um die Datei im Testclient zu öffnen.
- Klicken Sie auf In Warteschlange stellen.
Beachten Sie, dass die Nachricht Elemente im Ordner 'Body.MessageIdentity' enthält, in dem folgende Identitätsberechtigungsnachweise definiert werden:
- Benutzername: IdInMsg
- Kennwort: PwdInMsg
- Ausgegeben von: InMsgIssuer
- Erweitern Sie den Header im Abschnitt mit den ausführlichen Eigenschaften.
Beachten Sie, dass als Nachrichtenheader 'Standardheader' ausgewählt ist.
Wenn Sie im Testclient zur Registerkarte Konfiguration wechseln und MQ-Nachrichtenheader "Standardheader" auswählen, können Sie sich die Details des Headers anzeigen lassen. Für Benutzer-ID und
Name der PUT-Anwendung sind keine Werte angegeben.
- Klicken Sie auf der Registerkarte Ereignisse auf Nachricht senden.
Die Nachricht wird in die Warteschlange SECURITYIDFROMMSGIN eingereiht.
- Sehen Sie sich die Ergebnisse an:
- Rufen Sie die Ergebnisnachricht aus der Warteschlange SECURITYIDFROMMSGOUT ab.
- Klicken Sie im Testclient auf Aus Warteschlange entfernen.
- Klicken Sie auf Nachricht abrufen. Die Ausgabenachricht wird unter 'Nachricht' angezeigt.
- Angezeigt werden Ihnen die Hauptteilelemente, die von der Eingabenachricht im Nachrichtenfluss 'SecurityIdentityReportFlow' erstellt wurden.
- Beachten Sie, dass die in der Ausgabenachricht gemeldete Identität mit den Details der 'MessageIdentity'-Elemente in der Eingabenachricht übereinstimmt.
Als Aussteller wird ein beliebiger HTTP-Wert angegeben, da der Aussteller nicht weitergegeben wird.
Mustercode mit einer WebSphere MQ-Nachricht ausführen, die die Festlegung einer zugeordneten Identität anfordert
Wenn Sie mit WebSphere MQ-Nachrichten arbeiten, die nur den Benutzernamen und den Aussteller enthalten, muss für die Berechtigungsnachweise oftmals eine Zuordnung der föderierten Identität aufgerufen werden.
Anschließend können die Berechtigungsnachweise einem Formular zugeordnet werden, mit dem ein Dienst aufgerufen werden kann, der beispielsweise einen Benutzernamen und ein Kennwort erfordert.
In der Regel wird für diesen Vorgang ein externer föderierter Identitätsmanager aufgerufen.
Dieser
Mustercode bietet eine einfache Lösung, bei der die eingehende Identität mithilfe eines
Berechnungsknotens zugeordnet wird, sodass folgende Sicherheitsberechtigungsnachweise erstellt werden:
- Der Tokentyp ist der Benutzername und das Kennwort.
- Der Benutzername wird als "Kleinbuchstaben(empfangene ID)" + "@company.com" erstellt.
- Das Kennwort wird als "p_" + "Kleinbuchstaben(empfangene ID)" + "Jahr(aktuelle Zeitmarke)" erstellt.
So führen Sie den Mustercode mit der WebSphere MQ-Eingabenachricht aus, die die
Festlegung der zugeordneten Identität auf Grundlage des Benutzernamens anfordert, der im MQMD der Nachricht übermittelt wird:
- Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt 'SecurityIdentitySampleFlowProject'. Erweitern Sie das Verzeichnis Flow Tests und klicken Sie doppelt auf Security_Identity_Mapped.mbtest, um die Datei im Testclient zu öffnen.
- Klicken Sie auf In Warteschlange stellen.
Beachten Sie, dass die Nachricht das Element 'Body.MapIdentity' enthält.
Durch das Vorhandensein dieses Elements in der Nachricht legt die ESQL im Nachrichtenfluss 'SecurityIdentitySampleFlow' die zugeordneten Identitätsberechtigungsnachweise wie oben beschrieben fest.
- Erweitern Sie den Header im Abschnitt mit den ausführlichen Eigenschaften.
Beachten Sie, dass als Nachrichtenheader 'Send Identity' (Identität senden) ausgewählt ist.
Wenn Sie im Testclient zur Registerkarte Konfiguration wechseln und MQ-Nachrichtenheader "Send Identity" auswählen, können Sie sich die Details des Headers anzeigen lassen. Zu diesen Details gehören TESTUSER als Benutzer-ID und BRKTSTCLNT als Name der PUT-Anwendung.
- Klicken Sie auf der Registerkarte Ereignisse auf Nachricht senden.
Die Nachricht wird in die Warteschlange SECURITYIDFROMMQIN eingereiht.
- Sehen Sie sich die Ergebnisse an:
-
Rufen Sie die Ergebnisnachricht aus der Warteschlange SECURITYIDFROMMQOUT ab:
- Klicken Sie im Testclient auf Aus Warteschlange entfernen.
-
Klicken Sie auf Nachricht abrufen. Die Ausgabenachricht wird unter 'Nachricht' angezeigt.
Angezeigt werden Ihnen die Hauptteilelemente, die von der Eingabenachricht im Nachrichtenfluss 'SecurityIdentityReportFlow' erstellt wurden.
Beachten Sie, dass die in der Ausgabenachricht gemeldete Identität aus der Zuordnung des Benutzernamens erstellt wurde, der im MQMD der Eingabenachricht übermittelt wurde.
- Token: "testuser@company.com"
- Kennwort: "p_testuser2011"
Als Aussteller wird ein beliebiger HTTP-Wert angegeben, da der Aussteller nicht weitergegeben wird.
Mustercode mit einer HTTP-Anforderungsnachricht ausführen
Beim HTTP-Transport können Sicherheitsberechtigungsnachweise wie Benutzername und Kennwort im HTTP-Header übermittelt werden.
Zur Ausführung des Mustercodes mit einer HTTP-Anforderungsnachricht, die im Header der HTTP-Basisauthentifizierung ein Benutzeridentitäts- und ein Kennworttoken enthält, steht eine Java-Anwendung zur Verfügung.
Mithilfe der Java-Anwendung können Sie den Inhalt einer Textdatei einschließlich Benutzername und Kennwort an die HTTP-Eingabe des Musternachrichtenflusses übermitteln.
Die Argumente im Mustercode lauten wie folgt:
java BasicAuthHttpPost
<URL-Host> <URL-Port> <URL-Pfadsuffix> <XML-Datei>
[<Benutzer-ID> <Kennwort> ]
Dabei stehen die Argumente für Folgendes:
- <URL-Host> - Name des Hosts, an den die HTTP-Anforderung gesendet werden soll; dieses Argument ist auf localhost gesetzt.
- <URL-Port> - HTTP-Service-Port; die Broker-Standardeinstellung 7080.
- <URL-Pfadsuffix> - HTTP-URL-Suffix; /Security/IdentityFromHttp.
- <XML-Datei> - Pfad zur der Datei, die die zu sendenden Daten als Hauptteil der HTTP-Anforderung enthält;
Der Pfad lautet Messages\Simple.xml, da sich die Datei mit den Musternachrichtendaten Simple.xml in demselben Projekt befindet wie der Java-Quellcode im Nachrichtenpaket (Message).
- <Benutzer-ID> - Benutzer-ID (im Klartextformat), die im Header der HTTP-Anforderung gesendet werden soll.
- <Kennwort> - Kennwort (im Klartextformat), das im Header der HTTP-Anforderung gesendet werden soll.
Gehen Sie wie folgt vor, um den Mustercode mit einer HTTP-Anforderungsnachricht
auszuführen:
- Wechseln Sie im WebSphere Message Broker Toolkit zur Java-Perspektive.
- Erweitern Sie in der Ansicht 'Package Explorer' (Paketexplorer) das Paket com.ibm.wmb.sample.httpClient. Erweitern Sie hierfür das Projekt 'SecurityIdentitySampleApplicationProject'.
- Klicken Sie unter com.ibm.wmb.sample.httpClient mit der rechten Maustaste auf HttpPostFileWithBAuth.java und wählen Sie Run As > Run Configurations (Ausführen als - Konfigurationen ausführen) aus, um den Assistenten für Ausführungskonfigurationen zu öffnen.
- Klicken Sie in der linken Baumstruktursicht doppelt auf Java-Anwendung und wählen Sie die Konfiguration HttpPostFileWithBAuth aus.
- Stellen Sie sicher, dass auf der Hauptregisterkarte für Project (Projekt) der Wert SecurityIdentitySampleApplicationProject festgelegt ist.
- Vergewissern Sie sich, dass für Main class (Hauptklasse) der Wert com.ibm.wmb.sample.httpClient.HttpPostFileWithBAuth festgelegt ist.
- Wechseln Sie zur Registerkarte Arguments (Argumente) im Ausführungsassistenten und geben Sie die folgenden Programargumente ein:
Unter Windows:
localhost 7080 /Security/IdentityFromHttp
Messages\Simple.xml HttpUserName HttpPassword
Unter Linux oder Unix:
localhost 7080 /Security/IdentityFromHttp
Messages/Simple.xml HttpUserName HttpPassword
- Damit ist die Ausführungskonfiguration erstellt.
Starten Sie die Anwendung, um die HTTP-Anforderung an den Mustercode zu senden. Klicken Sie
hierfür auf Ausführen.
Sehen Sie sich die Ergebnisse an:
- Die Ausgabe der Java-Anwendung 'HttpPostFileWithBAuth' wird in der Ansicht Konsole angezeigt. Dort sehen Sie die empfangene HTTP-Antwort oder Details zum Sende- bzw. Empfangsfehler.
- Die angezeigte HTTP-Antwortnachricht enthält Elemente im Ordner 'Body', die im Nachrichtenfluss
'SecurityIdentityReportFlow' erstellt wurden.
- Bei der in der Ausgabenachricht gemeldeten Identität handelt es sich um den HTTP-Benutzernamen und das HTTP-Kennwort.
Diese Werte wurden als Argumente an die Testanwendung übermittelt und im Header der HTTP-Anforderungsnachricht gesendet.
Das Vorhandensein dieser Werte zeigt, dass die Identität über die HTTP-Anforderung vom Broker weitergegeben wurde.
Zurück zum Beginn des
Mustercodes