Tools4ever Tech Blog

Single Sign On-developer

Robbert Brussaard - Software Engineer | 13 januari 2016

Even voorstellen

Mijn naam is Robbert, geboren en getogen in Den Haag en in 2015 ben ik gestart bij Tools4ever als Software Developer bij het Single Sign On-team. In dit team werk ik samen met mijn collega's aan de softwareontwikkeling van een nieuw SSO-product. Dit product moet gebruikers overal, altijd en met elk apparaat (mobiel, tablet, pc en wellicht in de toekomst smartwatch) toegang geven tot de aan hen toegewezen (cloud-)applicaties. Bij het ontwikkelen van dit product komen veel (soms onverwachtse) uitdagingen om de hoek kijken.

Met mijn blog wil ik als developer o.a. inzicht geven in ons ontwikkelproces, laten zien hoe wij met uitdagingen omgaan en tips geven om software-vraagstukken op te lossen. Daarnaast wil ik uitleggen wat SSO inhoudt, wat de voordelen zijn, hoe dit vroeger werkte, hoe dit in het heden werkt en wat dit allemaal betekent voor een developer.

Wat is Single Sign On

Tijdens het voorstellen van mijzelf en mijn blog slingerde ik al met de term SSO (Single Sign On). Wat houdt dat nou precies in? Het principe is simpel: gebruikers hoeven slechts eenmalig in te loggen om daarna toegang te krijgen tot meerdere applicaties (zonder opnieuw in te loggen). Dit principe is mooi want:

  • Het verhoogt de effectiviteit en productiviteit van de gebruiker o.a. doordat de gebruiker:
    • Zich niet voor ieder systeem opnieuw hoeft te registreren;
    • Niet steeds opnieuw zijn inloggegevens hoeft in te voeren;
    • Minder vaak zijn inloggegevens verliest.
  • Het beperkt de kans op impersonatie/identiteitsfraude;

SSO - Intranet - CRM - ERP

SSO heeft uiteraard ook voordelen voor het bedrijf, maar dit is geen marketingverhaal. Wil je meer informatie over Single Sign On en de functionaliteiten en voordelen? Kijk dan hier. Het SSO principe is dus simpel, maar het is complex om te realiseren.

SSO vroeger en in het heden

Vroeger maakte de eindgebruiker via zijn werkplek vooral gebruik van applicaties (software) dat op het besturingssysteem draait. De gebruiker logt in op zijn werkplek en wordt vervolgens ingelogd in al zijn applicaties door bijvoorbeeld het Kerboros-protocol of door middel van Automated Login. Dit zijn goede en bewezen technieken en blijven tot vandaag de dag relevant.

Tegenwoordig is de manier waarop applicaties beschikbaar zijn en hoe men deze applicaties wil bereiken veranderd. De gebruiker wil bijvoorbeeld via zijn reguliere werkplek of vanaf zijn mobiele apparaat authenticeren op applicaties in de cloud. Dit betekent eigenlijk dat de gebruiker overal en met elk apparaat (BYOD), privé of zakelijk, wil kunnen authenticeren op applicaties; Dat houdt dus in maar één keer inloggen en niet voor iedere applicatie opnieuw.

Om dit vraagstuk op te lossen ontwikkelen wij een nieuw SSO-product. Via dit product logt de gebruiker in en wordt vervolgens ingelogd op applicaties in zijn applicaties door bijvoorbeeld het SAML-protocol of door middel van een HTTP POST-request. Waar dit niet beschikbaar is, moesten wij creatief zijn en dit oplossen door een soortgelijks iets als een Screen Scraping techniek. Namelijk door middel van browser-plugins en apps. Uiteraard op elk platform en mobielbesturingssysteem. In volgende blog-berichten zal ik verder ingaan op deze technieken.

Wat betekent dit voor een developer?

Universal Converter Box

We weten nu wat het is en hoe het in grote lijnen werkt, maar wat betekent dit eigenlijk voor een developer? Het is alsof je een ingenieur bent van een universele-adapter dat overal mee moet kunnen werken. Op het moment dat je de ene verbinding ontwikkeld hebt, is er wel weer een andere verbinding die ook ontwikkeld moet worden. Je zit dus als SSO-developer nooit zonder een volgende uitdaging.

Wij houden in de softwarearchitectuur van onze 'universele-adapter' daarom ook rekening mee met het feit dat het generiek moet zijn en dat dit waarschijnlijk niet de hele lading kan dekken, waardoor op een makkelijke manier 'maatwerk' moet kunnen worden geïmplementeerd. Dat klinkt gek he? Generiek maar toch specifiek.

Het product dat wij ontwikkelen is beschikbaar in de cloud of on-premise bij de klant. Het moet dus schaalbaar zijn, continuïteit bieden en goede beschikbaarheid hebben. Dit betekent voor mij als developer dat ik methodisch en toekomstgericht te werk moet gaan.

Het is dus belangrijk dat er kennis van verschillende protocollen en technieken moet worden opgedaan. In volgende berichten zal ik dieper ingaan op deze technieken en ons ontwikkelproces.

Mocht je technische vragen hebben of vragen hebben dan mag jij mij altijd e-mailen, mijn e-mailadres is r.brussaard@tools4ever.nl. Wil je wat meer over mij of de organisatie weten, dan kan je deze pagina bezoeken.