Net als in de as WSO2 API Manager zitten er in de WSO2 Enterprise Integrator voorbeelden die samples genoemd worden. De WSO2 API Manager heeft normaal gesproken één sample PizzaShack die je makkelijk kunt uitrollen (wat ik in een latere blog bespreek). De Enterprise Integrator heeft een submap met samples en daarin er een flink aantal voor de Enterprise Integrator, de Business Process Server en ook voor Data Services.
Voor de WSO2 Identity Server waren er oorspronkelijk geen samples beschikbaar, maar nu zijn ze wel via GitHub beschikbaar en kun je ze downloaden. Ik leg dat later in deze blog uit. Voor de nieuwste versie van de WSO2 Identity Server (5.11.0) is de downloadprocedure echter veranderd. Ook dat zal ik uitleggen. Ik zal beschrijven hoe je de samples voor de WSO2 Identity Server kunt downloaden, hoe je ze vervolgens opbouwt en gebruikt.
Samples in verschillende smaken
De samples zijn beschikbaar in twee, laten we zeggen, smaken. Eén van die smaken is degene waar ik van houd: met broncode. Je kunt die broncode downloaden en als je wilt een checksum validatie uitvoeren om te zien of de checksum die berekend was nog steeds correct is.
Er is ook een gecompileerde versie online beschikbaar. Dat zijn losse war-bestanden die gedefinieerd en gecompileerd zijn. Je moet ze echter individueel downloaden. De nieuwste gecompileerde versie is 4.3.0 en kun je via deze link vinden. Ik werk persoonlijk echter liever met de broncode, zoals ik al zei.
De samples downloaden
Je kunt de samples vinden op GitHub. Hier, om precies te zijn. Dit is de hoofdtak.
Je kunt de hele repository met Git klonen, maar je kunt het ook downloaden als zip-bestand, dat is handig als je Git niet geïnstalleerd of geconfigureerd hebt. Ik gebruik dit script op Linux om de samples te downloaden en te compileren. De tag v4.3.6 verwijst naar de nieuwste beschikbare versie op het moment van schrijven (juli 2021), waarvan wordt beweerd dat het tenminste tot versie 5.10.0 compatibel zal zijn. Ik ga er ook vanuit dat het met 5.11 nog zal werken. Het script doet het volgende: het download de sample en pakt die uit op de desktop, opent de map en voert een maven clean install commando uit om alle samples op te bouwen. Dit kan best even duren omdat het aantal samples behoorlijk groot is. De download is ruim 100MB en op een 2 core AWS instance duurde het compileren ruim zes en halve minuut. Als nog niet alle verplichte afhankelijkheden aanwezig zijn, dan kan het zelfs wel 12 minuten duren.
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
Voor een Maven build zul je Java en Maven al geïnstalleerd moeten hebben. Als je dat nog niet hebt, dan ben je beter af met de gecompileerde versies (uit de vorige paragraaf). In de doelmappen vind je de war-bestanden voor deployment naar bijvoorbeeld een Tomcat 8 server.
Aan de slag met een voorbeeld
We zullen er nu een voorbeeld gebruiken om mee te werken. Maar welke? En hoe kunnen we weten hoe we die sample gebruiken? Gelukkig zijn er een aantal informatiebronnen waar we een kijkje naar kunnen nemen, waaronder de README.md van de saml2-sso-sample.
Dit voorbeeld staat een Single Sign On toe voor twee sample apps. Je merkt dat de samples van de Identity Server hebben niet zoveel te maken met het draaien van het product, maar meer met het gebruik van de functies. Om het product aan de praat te krijgen zullen we een aantal dingen moeten doen (dit haal ik uit de bovengenoemde instructies). Ik beschrijf niet alle stappen om dit te doen, omdat deze blog dan wel erg lang zou worden.
Deploy de Identity Server 5.11.0 op een machine, creëer twee service providers die voor de ‘single sign on’-procedure op de Identity Server als IDP en het SAML SSO proces vertrouwen.
Voor de war-bestanden is deployment op een Tomcat 8 server nodig. Gelukkig voldoet mijn trainingsomgeving aan de vereisten. De namen van de application distributions zijn respectievelijk saml2-web-app-pickup-dispatch.com.war en saml2-web-app-pickup-manager.com.war.
Ik heb de twee war-bestanden geïsoleerd en toegevoegd aan de Tomcat 8. Dit doe ik door ze neer te zetten in de webapps map en te verifiëren via de UI van Tomcat op localhost:8080.
We zullen nu twee service providers moeten maken, zoals aangegeven in de documentatie. Voeg een service provider toe en configureer de ‘Inbound Authentication Configuration’ – ‘SAML2 WEB SSO Configuration’.
Klik op ‘Register’ en ga naar ‘Inbound Authentication Configuration’. Configureer de SAML2 setup.
Voer deze waarden in:
Issuer - saml2-web-app-pickup-dispatch.com
Assertion Consumer URLs - http://localhost.com:8080/saml2-web-app-pickup-dispatch.com/home.jsp
klik op ‘Add’ om de waarde aan de configuratie toe te voegen.
Zet ‘Response Signing’ en ‘Single Logout’ aan, maar laat alle andere velden leeg. Klik op ‘Register’ om toe te voegen. Klik dan op ‘Update’ om nog een Service Provider te creëren.
Manager
Klik ‘Update’ om nog een Service Provider te maken. Noem deze “Manager”.
Klik op ‘Register’ en ga naar ‘Inbound Authentication Configuration’. Configureer de SAML2-setup.
Voer de waardes in voor de manager applicatie:
Issuer - saml2-web-app-pickup-manager.com
Assertion Consumer URLs - http://localhost.com:8080/saml2-web-app-pickup-manager.com/home.jsp
Zet ‘Response Signing’ and ‘Single Logout’ aan en laat weer alle andere velden leeg. Klik op ‘Register’ om dit toe te voegen en dan op ‘Update’ om terug te gaan.
Deployment.toml
We zullen CORS in moeten schakelen in het deployment.toml bestand. Dit doe je door het toe te voegen aan het deployment.toml bestand in [IS-HOME]/repository/conf
Herstart de Identity Server zodat de wijzigingen doorgevoerd worden. Het toml-bestand wordt namelijk alleen bij het opstarten of herstarten gelezen.
De sample uitproberen
Ga naar één van de twee URL’s van de app: http://localhost.com:8080/saml2-web-app-pickup-dispatch.com/ of http://localhost.com:8080/saml2-web-app-pickup-manager.com. Log in met admin/admin als gebruikersnaam/wachtwoord combinatie. Als je nu bij één van beide ingelogd bent en dan de andere opent, je automatisch het inlogscherm overslaat vanwege de SAML2 bevestiging.
Log in bij Pickup
met admin / admin:
en je bent binnen.
Als je nu naar de Manager app gaat en op ‘Login’ klikt,
wordt de SAML2-bevestiging gebruikt om toegang te krijgen.
Conclusie
De Identity Server heeft een aantal mooie voorbeelden om bepaalde setups te testen en uit te proberen die de tijd en energie van het downloaden en bouwen dubbel en dwars waard zijn. Een aantal ervan zijn ook als kant-en-klare war-bestanden beschikbaar. Gezien de aard van de Identity Server is daarmee een iets andere aanpak nodig dan bij de Enterprise Integrator en API Manager. De Identity Server is eigenlijk een soort black box, omdat het als een Identity Bus functioneert.
Leer meer over de Identity Server
De Identity Server is een krachtige Identity and Access Management oplossing die een cruciale rol kan spelen in je IT landschap. Als je meer wilt weten over dit product, bekijk dan onze trainingen over de Identity Server.