Wat is Security Assertion Markup Language (SAML)?
- IAM-woordenlijst
- Wat is Security Assertion Markup Language (SAML)?
Security Assertion Markup Language (SAML) is een open, op XML gebaseerde standaard waarmee een identiteitsprovider (IdP) de authenticatie- en autorisatiegegevens van een gebruiker veilig kan doorgeven aan een serviceprovider (SP). Simpel gezegd is SAML een van de belangrijkste technologieën waarmee gebruikers zich één keer kunnen aanmelden en meerdere applicaties kunnen bereiken zonder opnieuw aanmeldingsgegevens in te voeren.
Waar wordt SAML voor gebruikt?
SAML wordt doorgaans overal gebruikt waar gebruikers veilige, gestroomlijnde toegang tot meerdere applicaties nodig hebben. De meest voorkomende toepassingen zijn:
- Single Sign-On (SSO): met één enkele aanmelding krijgt u toegang tot meerdere applicaties, waardoor u niet voor elke service opnieuw aanmeldingsgegevens hoeft in te voeren.
- Gefedereerde identiteit: SAML stelt een organisatie in staat om identiteiten te vertrouwen die zijn uitgegeven door een partner of moederbedrijf, zodat gebruikers vanaf een vertrouwd domein toegang krijgen zonder dat er afzonderlijke accounts nodig zijn.
- Toegangsbeheer voor ondernemingen: IT-teams krijgen centrale controle over wie er toegang heeft tot welke applicaties door aanmeldingen via één enkele IdP te leiden, wat helpt om consistent beleid zoals meerledige verificatie (MFA) overal tegelijk af te dwingen.
In elk gebruiksscenario geeft de IdP een ondertekende XML-assertie uit die via de browser van de gebruiker naar de SP wordt gestuurd, waardoor authenticatiegegevens veilig worden overgedragen zonder dat de gebruiker zich opnieuw hoeft aan te melden.
De belangrijkste onderdelen van SAML
SAML-uitwisselingen omvatten over het algemeen samenwerking van meerdere onderdelen. Hier volgen enkele kerntermen waardoor het authenticatieproces veel eenvoudiger te volgen wordt:
- Identiteit (betrokkene): de gebruiker die wordt geauthenticeerd, voornamelijk een persoon die toegang probeert te krijgen tot een specifieke applicatie.
- Identiteitsprovider (IdP): het systeem dat de gebruiker verifieert en de assertie uitgeeft, zoals Microsoft Entra ID of Okta, zodat de daadwerkelijke aanmelding kan plaatsvinden.
- Serviceprovider (SP): De applicatie of website die de gebruiker wil bereiken en die vertrouwt op de IdP om de identiteit van de gebruiker te bevestigen, in plaats van aanmeldingsgegevens te beheren.
- SAML-assertie: het ondertekende XML-afschrift dat de IdP naar de SP verzendt, met daarin de identiteits- en autorisatiegegevens van de gebruiker (zie hieronder voor meer informatie).
- Metadata: De configuratie die beide partijen vooraf uitwisselen — eindpunten, certificaten enz. — om aan te tonen dat de IdP en SP weten hoe ze elkaar kunnen vertrouwen en met elkaar kunnen communiceren.
- Ondertekeningscertificaat: het digitale certificaat met de openbare sleutel die de SP gebruikt om de handtekening van de assertie te verifiëren, waarmee vertrouwen tussen de SP en de IdP wordt gevestigd om te bevestigen dat de assertie tijdens de overdracht niet is gewijzigd.
Hoe werkt SAML-authenticatie?
SAML-authenticatie werkt door een ondertekende assertie van de IdP naar de SP te sturen, waarmee wordt bevestigd dat de gebruiker is wie deze beweert te zijn. De door de SP geïnitieerde stroom is de meest voorkomende versie van SAML-authenticatie en begint wanneer de gebruiker naar de website of applicatie navigeert die men wil gebruiken. Als de applicatie afhankelijk is van een externe IdP voor de aanmelding, wordt de browser van de gebruiker met een SAML-authenticatieverzoek doorgestuurd naar de IdP. De IdP controleert vervolgens de aanmeldingsgegevens van de gebruiker om deze te verifiëren; als de gebruiker al een actieve sessie heeft, wordt deze stap overgeslagen. Zodra dit voor de IdP in orde is, genereert deze een ondertekende assertie en stuurt deze via de browser terug naar de SP. Tot slot valideert de SP de handtekening van de assertie, vertrouwt deze en laat de gebruiker binnen zonder dat er een afzonderlijke aanmelding nodig is. Hoewel door de SP geïnitieerde authenticatie het meest gebruikelijk is voor SAML, is er ook een door de IdP geïnitieerde stroom, waarbij de gebruiker in plaats daarvan bij de IdP begint, bijvoorbeeld door op een applicatietegel op een bedrijfsdashboard te klikken.
Wat is een SAML-assertie?
Een SAML-assertie is het ondertekende XML-document dat de IdP naar de SP stuurt om voor een gebruiker in te staan. Elke assertie kan een of meer verklaringen bevatten. Dit zijn de daadwerkelijke gegevens die de SP gebruikt om te bepalen of de gebruiker toegang moet krijgen. Er zijn drie typen verklaringen:
- Authenticatieverklaringen bevestigen wie de gebruiker is, wanneer deze zich heeft aangemeld en hoe (d.w.z. of er MFA is gebruikt).
- Attribuutverklaringen bevatten aanvullende informatie over de gebruiker, zoals diens rol of afdeling. De SP kan deze attributen gebruiken om te bepalen wat de gebruiker kan zien of doen.
- Autorisatiebeslissingsverklaringen geven aan of de gebruiker toegang krijgt tot een bepaalde bron. Dit type verklaring wordt zelden gebruikt, aangezien complexere autorisatie doorgaans wordt afgehandeld door eXtensible Access Control Markup Language (XACML).
SAML versus andere authenticatiestandaarden
SAML wordt vaak in verband gebracht met andere identiteits- en toegangsprotocollen die gerelateerde maar verschillende taken uitvoeren. Het hoofddoel van SAML is het afhandelen van authenticatie, waarbij wordt aangetoond wie een gebruiker is en of die toegang mag krijgen tot een website of applicatie. Die authenticatie onderscheidt het van OAuth, een autorisatieprotocol dat een applicatie toestemming verleent om toegang te krijgen tot specifieke bronnen. SAML en OAuth vullen elkaar eerder aan dan dat ze met elkaar concurreren, waarbij SAML de identiteit bevestigt en OAuth toegang verleent.
OpenID Connect (OIDC) lijkt meer op SAML, aangezien beide gebruikers authenticeren en SSO mogelijk maken. OIDC is echter een authenticatielaag die bovenop OAuth is gebouwd en JSON Web Tokens (JWT's) gebruikt die geschikt zijn voor moderne web- en mobiele applicaties, terwijl de op XML gebaseerde benadering van SAML nog steeds veel wordt gebruikt voor zakelijke web-SSO, hoewel OIDC steeds vaker de standaard is voor nieuwe applicaties. Ter vergelijking: Lightweight Directory Access Protocol (LDAP) is een ouder directoryprotocol dat dateert van vóór de cloud en is ontworpen voor on-premises omgevingen. In plaats van te concurreren met SAML bevindt LDAP zich vaak achter een SAML-IdP als bron van aanmeldingsgegevens van gebruikers.
| SAML | OAuth | OIDC | LDAP | |
|---|---|---|---|---|
| Wat het doet | Authenticatie en SSO | Autorisatie | Authenticatie (via OAuth) | Directorytoegang |
| Bestandstype | Ondertekende XML-assertie | Toegangstoken | JWT | Zoekopdrachten in directory's |
| Meest geschikt voor | SSO voor enterprise webapplicaties | Gedelegeerde API-toegang | Mobiele en cloudeigen applicaties | On-prem directory's |
SAML
OAuth
OIDC
LDAP
De voor- en nadelen van SAML
SAML biedt veel voordelen, maar brengt tegelijk ook afwegingen met zich mee die u voor de implementatie moet weten.
Voordelen van SAML
Het grootste voordeel van SAML is dat het aantal wachtwoorden dat gebruikers moeten beheren, beperkt blijft. Met één aanmelding die toegang biedt tot meerdere applicaties, hoeven gebruikers minder aanmeldingsgegevens te onthouden, waardoor het aanvalsoppervlak wordt geminimaliseerd en het risico op diefstal van aanmeldingsgegevens wordt verkleind. Doordat authenticatie via één enkele IdP verloopt, krijgen organisaties ook gecentraliseerd beleidsbeheer; beveiligingsteams kunnen vanuit één locatie voor elke verbonden applicatie consistent MFA afdwingen. Die centralisatie loont en verlaagt de kosten van de helpdesk door het verminderen van de wachtwoordreset-aanvragen die de IT-ondersteuning over het algemeen overspoelen.
De nadelen van SAML
De voordelen van SAML doen zich pas voor wanneer de opmaaktaal correct is geconfigureerd. Het vertrouwt op XML Signature en XML Encryption voor berichtintegriteit en privacy, en op TLS voor transportbeveiliging. Een van de meest voorkomende SAML-kwetsbaarheden heeft betrekking op verkeerde configuratie, zoals het onjuist valideren van handtekeningen. Het model op basis van XML is minder flexibel dan moderne tokenformaten, waardoor SAML lastig te implementeren is in mobiele apps en applicaties met één pagina.