Wat is SAML en hoe werkt het?
SAML staat voor Security Assertion Markup Language, een open standaard voor het doorsturen van autorisatiegegevens van identity providers (IdP's) naar serviceproviders (SP's). Eenvoudig gezegd, SAML zorgt voor een veilige communicatie tussen applicaties en biedt gebruikers toegang met één set inloggegevens.
Voordat we al te diep ingaan op wat SAML doet, hoe SAML werkt en hoe organisaties er hun voordeel mee kunnen doen, moet u weten wat voor soort SAML-providers er zijn die dit proces mogelijk maken. Dus laten we daarmee beginnen.
Soorten SAML-providers
Om zijn werk te kunnen doen, heeft SAML een identity provider (IdP) en een serviceprovider (DP) nodig:
- Identity providers authenticeren gebruikers: deze systemen zijn verantwoordelijk voor de bevestiging dat een gebruiker daadwerkelijk is wie hij of zij zegt te zijn en sturen die informatie vervolgens (met de toegangsrechten van de gebruiker) naar een serviceprovider. Okta, Microsoft Active Directory (AD) en Microsoft Azure zijn alle drie voorbeelden van identity providers.
- Serviceproviders autoriseren gebruikers: deze systemen gebruiken de authenticatiedata van een identity provider om een service toegang te geven. Voorbeelden hiervan zijn Salesforce, Box en andere topproducten.
SAML is de link tussen de authenticatie van de identiteit van een gebruiker en de autorisatie om een service te gebruiken. Het is de taal waarmee IdP's en SP's met elkaar communiceren. Wanneer een opdrachtgever (de IdP) en een SaaS-organisatie (de SP) beide SAML implementeren, kunnen ze op naadloze wijze geaccrediteerde gebruikers authenticeren.
Waarvoor wordt SAML gebruikt?
SAML betekent een volledige verandering van de manier waarop gebruikers zich aanmelden bij services of websites en is bedoeld om gekoppelde authenticatie- en autorisatieprocessen voor alle partijen, te weten IdP's, SP's en eindgebruikers, te vereenvoudigen.
In plaats van te vragen naar gegevens zoals een gebruikersnaam en wachtwoord telkens wanneer iemand inlogt, kan SAML helpen bij het verifiëren of gebruikers daadwerkelijk zijn wie ze beweren te zijn en bij het bevestigen van de juiste rechten om al dan niet toegang te verlenen. Bovendien laat SAML identity providers en serviceproviders los van elkaar bestaan, waardoor organisaties het beheer van gebruikers kunnen centraliseren om toegang te geven tot verschillende softwareoplossingen.
SAML wordt veelvuldig gebruikt voor het inschakelen van Single Sign-On (SSO), waarmee geaccrediteerde gebruikers worden geauthenticeerd tussen een identity provider en een serviceprovider. Organisaties die bijvoorbeeld met SAML geconfigureerde applicaties implementeren, kunnen ervoor zorgen dat hun werknemers maar één set inloggegevens nodig hebben voor toegang tot een dashboard van waaruit ze rechtstreeks toegang hebben tot al hun productiviteits- en communicatietools.
Hoe SAML werkt
SAML maakt gebruikt van Extensible Markup Language (XML) voor communicatie tussen de identity provider en de serviceprovider. Die vindt plaats in de vorm van een SAML-assertion, een type XML-document dat een IdP naar een SP stuurt om een gebruiker te autoriseren.
Er zijn drie typen SAML-assertions:
- Authenticatie-assertions bevestigen de identiteit van de gebruiker en geven aan hoelang de gebruiker is ingelogd en welk authenticatieprotocol er is gebruikt (bijv. Kerberos, multi-factor authenticatie).
- Attributie-assertions geven SAML-attributen door, dat zijn de data waarmee informatie over de gebruiker wordt doorgegeven aan de serviceprovider.
- Autorisatie-assertions geven aan of de gebruiker een service mag gebruiken en welk autorisatieniveau de gebruiker heeft, of ze bevestigen dat de identity provider het verzoek van de gebruiker heeft geweigerd vanwege een verkeerd wachtwoord of verkeerde toegangsrechten.
Kort samengevat, SAML werkt door informatie over gebruikers, hun logins en hun attributen door te geven van een identity provider naar een serviceprovider. Wanneer een gebruiker bijvoorbeeld inlogt met SSO, stuurt de IdP SAML-attributen door naar de SP zodat de gebruiker maar één keer hoeft in te loggen.
Laten we eens kijken hoe dat er in de praktijk uitziet. Wanneer gebruikers bij een organisatie beginnen te werken, krijgen ze een e-mailadres en toegang tot een dashboard. Wanneer ze zich bij dat dashboard aanmelden met behulp van een identity provider (zoals Okta), krijgen ze pictogrammen van externe serviceproviders te zien, zoals Slack of Salesforce. Als ze op een van die pictogrammen klikken, worden ze automatisch aangemeld bij de desbetreffende service zonder opnieuw hun inloggegevens te hoeven invoeren.
Eigenlijk zijn er twee typen SAML-flows die gebruikers kunnen doorlopen om toegang te krijgen tot websites, applicaties en online services:
SP-geïnitieerde SAML-flow
Vindt plaats wanneer een gebruiker zich probeert aan te melden bij een door SAML ondersteunde service via de inlogpagina of een mobiele app. De gebruiker wordt niet gevraagd in te loggen, maar wordt doorgestuurd naar diens identity provider om de authenticatie af te handelen. Als de identiteit wordt bevestigd, krijgt de gebruiker toegang tot de site of app.
IdP-geïnitieerde SAML-flow
Vindt plaats wanneer gebruikers inloggen bij de identity provider en een service-applicatie vanuit hun eigen database starten. Als ze al een account bij de serviceprovider hebben, krijgen ze automatisch toegang. Is dat niet het geval, dan kunnen sommige identity providers met SAML een nieuw, geverifieerd account voor die service maken.
Voordelen van SAML
SAML biedt veel voordelen voor zowel gebruikers als organisaties, zoals het verminderen van de frictie bij gebruik van meerdere webapps. Dit zijn enkele andere voordelen:
Een betere user experience
SAML maakt het niet alleen makkelijker om in te loggen bij applicaties en services, maar helpt gebruikers ook productiever te werken omdat ze meteen toegang hebben tot alle benodigde tools.
Minder verlies van inloggegevens
Het gebruik van veel verschillende inloggegevens leidt er vaak toe dat mensen hun wachtwoord vergeten, of erger, dat ze het opschrijven, waardoor het risico van diefstal groter wordt. Met SAML hoeven gebruikers maar één combinatie van gebruikersnaam en wachtwoord te onthouden.
Betere security
SAML zorgt voor één authenticatiepunt bij een veilige identity provider en vanaf daar worden de identiteitsgegevens van de gebruiker doorgestuurd naar serviceproviders. Daardoor worden inloggegevens alleen rechtstreeks verzonden om de kans op phishing of identiteitsdiefstal tot een minimum te beperken.
Lagere kosten
Het implementeren van SAML bespaart heel wat tijd aan beheertaken omdat er geen tickets te hoeven worden ingediend en er geen wachtwoorden te hoeven worden gereset. Bovendien helpt dat ook de developmentkosten (die vaak gekoppeld zijn aan proprietary authenticatiemethoden) tot een minimum te beperken.
Vereenvoudigd user management
Wanneer werknemers meerdere applicaties gebruiken, kan het beheer van toegangsrechten voor IT-afdelingen een ware nachtmerrie worden wanneer rollen veranderen of werknemers de organisatie verlaten. Met SAML wordt dat veel eenvoudiger omdat iedere gebruiker vanuit een en dezelfde directory kan worden beheerd.
Alternatieven voor SAML
SAML heeft tal van voordelen te bieden in termen van identityfederatie, maar er zijn alternatieven verkrijgbaar waarmee organisaties en services identity's van gebruikers op een veilige manier kunnen beheren en goedkeuren.
OpenID: OpenID is een open source identitystandaard die gebruikers toegang biedt tot meerdere websites en apps zonder dat er extra inloggegevens hoeven te worden verstrekt. Als u al eens hebt ingelogd op een website met uw inloggegevens van Google, YouTube of Facebook, hebt u te maken gehad met OpenID.
OAuth: OAuth (of OpenAuth, om de volledige naam te gebruiken) is een standaard die gezamenlijk door Google en Twitter is ontwikkeld om gestroomlijnde logins tussen websites mogelijk te maken. Het lijkt op SAML in die zin dat er gegevens worden uitgewisseld tussen applicaties (Facebook en Google zijn twee OAuth-providers die u hoogstwaarschijnlijk al eens gebruikt hebt). Maar het is weer anders dan SAML vanwege het gebruik van JSON-tokens om gebruikers te authenticeren en is daarom meer geschikt voor mobiel gebruik.
Web Service Federation: Web Services Federation wordt gebruikt voor de federatie van authenticatie van serviceproviders naar identity providers. Het wordt algemeen beschouwd als eenvoudiger te implementeren voor developers en wordt goed ondersteund door populaire identity providers zoals AD, maar minder door cloudproviders.
Aan de slag met SAML
SAML is een vitaal onderdeel van elke strategie voor cybersecurity omdat hiermee het gebruik van inloggegevens wordt verminderd en organisaties identity gecentraliseerd kunnen controleren en beheren. Bovendien biedt SAML gebruikers makkelijk toegang tot de webapps die ze nodig hebben en wel op een manier die ook de security verbetert.
Met de juiste identity provider is het makkelijk om met SAML te beginnen. Okta biedt bijvoorbeeld een tool voor SAML-validatie naast diverse opensource SAML-toolkits in verschillende programmeertalen.
Bekijk eens de volgende hulpbronnen om een beter beeld te krijgen van de manier waarop organisaties en werknemers hun voordeel kunnen doen met SAML:
- Understanding SAML (documentatie)
- SAML Integrations OpenID Connect and Partner IdP (productdemo)