fb
WSO2 Identity Server 5 Minuten

Mit den WSO2 Identity Server-Samples arbeiten

Rob Blaauboer
Rob Blaauboer
Integration Consultant & WSO2 Trainer
Working with the WSO2 Identity Server Samples
Scrollen

Im WSO2 Enterprise Integrator sowie im WSO2 API Manager sind Samples enthalten. Der WSO2 API Manager verfügt in der Regel über ein PizzaShack-Sample, das Sie einfach bereitstellen können (ich werde dies in einem späteren Blog erläutern). Für den Enterprise Integrator gibt es ein Unterverzeichnis mit Samples, das zahlreiche Samples sowohl für den Enterprise Integrator als auch für den Business Process Server und die Data Services enthält.

Für den WSO2 Identity Server wurden in der Vergangenheit keine Samples zur Verfügung gestellt. Sie sind auf GitHub verfügbar und können heruntergeladen werden, wie ich in diesem Blog beschreibe. Bei der neuesten Version des WSO2 Identity Servers (5.11.0) hat sich das Download-Verfahren jedoch geändert. In diesen Blog beschreibe ich das geänderte Verfahren und zeige Ihnen, wie Sie die Samples, die zum WSO2 Identity Server gehören, herunterladen, erstellen und verwenden können.

Geschmacksrichtungen der Samples

Die Samples sind in zwei, ich würde sagen, Geschmacksrichtungen erhältlich. Die eine Variante, die ich am liebsten verwende, ist der Quellcode. Der Quellcode kann heruntergeladen werden. Und wenn Sie möchten, können Sie eine Überprüfung der Prüfsumme durchführen, um zu sehen, ob die berechnete Prüfsumme auch noch die richtige ist.

Es gibt auch eine kompilierte Version, die online verfügbar ist. Dies sind die einzelnen War-Dateien, die definiert und kompiliert sind. Sie müssen jedoch einzeln heruntergeladen werden. Und wie ich schon sagte, würde ich lieber den Quellcode verwenden. Die neueste kompilierte Version ist 4.3.0 und kann über diesen Link gefunden werden.

Herunterladen der Samples

Die Samples sind auf GitHub zu finden. Hier, um genau zu sein. Dies ist der Master-Branch.

Samples Identity Server 1

Sie können das Repository mit Git klonen, aber auch einfach die Zip-Datei herunterladen, wenn Sie Git nicht installiert oder konfiguriert haben. Ich verwende dieses Skript auf Linux, um die Samples herunterzuladen und zu kompilieren. Das Tag v4.3.6 ist die neueste Version, die zum Zeitpunkt der Erstellung dieses Artikels (Juli 2021) verfügbar war, und es wird angegeben, dass es mindestens mit Version 5.10.0 kompatibel ist. Ich nehme an, dass es auch mit 5.11 kompatibel ist. Das Skript lädt das Sample herunter und entpackt es auf den Desktop, öffnet den Ordner und führt den Befehl maven clean install aus, um alle Samples zu erstellen. Das kann einige Zeit dauern, da die Anzahl der Samples recht groß ist. Der Download beträgt 100+ MB und auf einer AWS-Instanz mit 2 Kernen dauerte die Kompilierung etwa 6:39 Minuten. Falls nicht alle erforderlichen Abhängigkeiten vorhanden sind, kann es bis zu 12+ Minuten dauern.

wget https://github.com/wso2/samples-is/archive/refs/tags/v4.3.6.zip -P /opt/wso2/Downloads
unzip /opt/wso2/Downloads/v4.3.6.zip -d /opt/wso2/Desktop

cd /opt/wso2/Desktop/samples-is-4.3.6
mvn clean install

Für ein Maven-Build müssen Sie Java und Maven installiert haben. Wenn Sie dies nicht haben, sind die kompilierten Versionen (siehe vorheriger Absatz) besser. In den Zielverzeichnissen finden Sie die War-Dateien, die z.B. auf einem Tomcat 8-Server bereitgestellt werden müssen.

Mit einem Sample arbeiten

Jetzt müssen wir mit dem Sample arbeiten. Aber welches? Und woher wissen wir, wie wir es verwenden sollen? Zum Glück gibt es eine Reihe von Ressourcen, in die wir einen Blick werfen können. Dies ist die README.md des saml2-sso-Samples

Dieses Sample bietet Single Sign On zwischen zwei Sample-Anwendungen. Die Samples von Identity Server werden nicht so sehr auf dem Produkt ausgeführt, sondern dienen dem Zugriff auf die Funktionen des Produkts. Um es zum Laufen zu bringen, müssen wir ein paar Dinge tun (dies ist der oben erwähnten Anleitung entnommen). Ich werde hier nicht alle Schritte beschreiben, da dies den Blog ziemlich umfangreich machen würde. 

Installieren Sie den Identity Server 5.11.0 auf einem Rechner, erstellen Sie zwei Dienstanbieter, die sich auf den Identity Server als IDP und den SAML SSO-Prozess verlassen, um Single Sign On zu ermöglichen.

Die War-Dateien müssen auf einem Tomcat 8-Server bereitgestellt werden. Zum Glück erfüllt meine Schulungsumgebung die Anforderungen. Die Anwendungen heißen saml2-web-app-pickup-dispatch.com.war und saml2-web-app-pickup-manager.com.war.

Die beiden War-Dateien habe ich isoliert und zu Tomcat 8 hinzugefügt, indem ich sie im Verzeichnis webapps abgelegt und über die Benutzeroberfläche von Tomcat auf localhost:8080 überprüft habe.

Samples Identity Server 2
Samples Identity Server 3

Jetzt müssen wir zwei Dienstanbieter erstellen, wie in der Dokumentation beschrieben. Fügen Sie einen Service Provider hinzu und konfigurieren Sie die Konfiguration der eingehenden Authentifizierung – SAML2 WEB SSO Konfiguration.

Samples Identity Server 4

Klicken Sie auf Registrieren und gehen Sie zur Konfiguration der eingehenden Authentifizierung. Konfigurieren Sie die SAML2-Einrichtung.

Samples Identity Server 5

Geben Sie die Werte ein: 

Issuer - saml2-web-app-pickup-dispatch.com  
Assertion Consumer URLs - http://localhost.com:8080/saml2-web-app-pickup-dispatch.com/home.jsp 

Klicken Sie auf Hinzufügen, um den Wert zur Konfiguration hinzuzufügen.

Samples Identity Server 6

Aktivieren Sie Response Signing und Single Logout, alle anderen Felder sind leer. Zum Hinzufügen klicken Sie auf Registrieren. Klicken Sie auf Aktualisieren, um einen weiteren Dienstanbieter hinzuzufügen.

Manager

Klicken Sie auf Aktualisieren, um einen weiteren Dienstanbieter hinzuzufügen. Nennen Sie diesen Manager. 

Samples Identity Server 7

Klicken Sie auf Registrieren und gehen Sie zur Konfiguration der eingehenden Authentifizierung. Konfigurieren Sie die SAML2-Einrichtung.

Samples Identity Server 8

Geben Sie die Werte für die Manager-Anwendung ein:

Samples Identity Server 9
Issuer - saml2-web-app-pickup-manager.com  
Assertion Consumer URLs - http://localhost.com:8080/saml2-web-app-pickup-manager.com/home.jsp

Aktivieren Sie Response Signing und Single Logout, alle anderen Felder sind leer. Zum Hinzufügen auf Registrieren klicken. Klicken Sie auf Aktualisieren, um zurückzukehren.

Deployment.toml

Wir müssen CORS in der Datei deployment.toml aktivieren. Fügen Sie Folgendes zur Datei deployment.toml in [IS-HOME]/repository/conf hinzu

Samples Identity Server 10

Starten Sie dann den Identity Server neu, damit die Änderungen wirksam werden. Die toml-Datei wird nur beim (Neu-)Start gelesen.

Ausprobieren der Samples

Rufen Sie eine der URLs der App http://localhost.com:8080/saml2-web-app-pickup-dispatch.com/ und http://localhost.com:8080/saml2-web-app-pickup-manager.com auf. Melden Sie sich mit den Anmeldedaten admin /admin an. Beachten Sie, dass der Zugriff auf die andere App den Anmeldevorgang aufgrund der SAML2-Assertion umgeht, wenn Sie bei einer der beiden Apps angemeldet sind.

Loggen Sie sich bei Pickup ein:

Samples Identity Server 11

Mit Admin-/Admin-Zugangsdaten:

Samples Identity Server 12

Und sind zugelassen. 

Samples Identity Server 13

Wenn Sie die Manager-App aufrufen und auf Login klicken.

Samples Identity Server 14

Die SAML2-Assertion wird verwendet, um Zugang zu erhalten.

Samples Identity Server 15

Fazit

Der Identity Server bietet eine Reihe von interessanten Samples zum Testen oder Ausprobieren bestimmter Setups, die den Download und die Erstellung auf jeden Fall wert sind. Einige von ihnen sind auch als fertige War-Dateien verfügbar, wie wir bereits erwähnt haben. Die Arbeit mit dem Identity Server unterscheidet sich ein wenig von der Arbeit mit dem Enterprise Integrator und dem API Manager (der Identity Server ist eher eine Blackbox, da er als Identity Bus fungiert).  

Erfahren Sie mehr über Identity Server

Der Identity Server ist eine leistungsstarke Lösung für das Identitäts- und Zugriffsmanagement, die eine entscheidende Rolle in Ihrer IT-Landschaft spielen kann. Falls Sie mehr über dieses Produkt erfahren möchten, besuchen Sie unsere Identity Server-Schulungen.