fb
WSO2 Identity Server 5 minuten

Hoe werken de WSO2 Identity Server samples?

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

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.

Samples Identity Server 1

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.

Samples Identity Server 2
Samples Identity Server 3

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’.

Samples Identity Server 4

Klik op ‘Register’ en ga naar ‘Inbound Authentication Configuration’. Configureer de SAML2 setup.

Samples Identity Server 5

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.

Samples Identity Server 6

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”. 

Samples Identity Server 7

Klik op ‘Register’ en ga naar ‘Inbound Authentication Configuration’. Configureer de SAML2-setup.

Samples Identity Server 8

Voer de waardes in voor de manager applicatie:

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

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

Samples Identity Server 10

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 

Samples Identity Server 11

met admin / admin:

Samples Identity Server 12

en je bent binnen. 

Samples Identity Server 13

Als je nu naar de Manager app gaat en op ‘Login’ klikt,

Samples Identity Server 14

wordt de SAML2-bevestiging gebruikt om toegang te krijgen.

Samples Identity Server 15

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.