Naar de inhoud
esif.nl, kennisbank security en intelligence

Afkortingen

SAML (Security Assertion Markup Language)

Bijgewerkt op · Door Maarten van den Bos

SAML staat voor Security Assertion Markup Language: een open standaard waarmee organisaties op een veilige manier inloggegevens en rechten van gebruikers uitwisselen. Een identity provider controleert wie de gebruiker is en stuurt daarover een digitaal ondertekend bericht naar de dienst waar de gebruiker wil inloggen. Zo maakt SAML single sign-on mogelijk tussen verschillende organisaties.

Wat is SAML?

SAML is een open standaard van OASIS, een internationale organisatie die open standaarden ontwikkelt. OASIS omschrijft SAML als een raamwerk om beveiligingsinformatie uit te wisselen tussen online zakenpartners. De huidige versie, SAML 2.0, werd in maart 2005 goedgekeurd als OASIS-standaard. Volgens OASIS maakt SAML 2.0 onder meer webgebaseerde single sign-on mogelijk die niet aan 1 leverancier gebonden is.

De kern van SAML is de assertion: een digitaal bericht in XML (een opmaaktaal voor gestructureerde gegevens) waarin de ene partij iets verklaart over een gebruiker. Er zijn 3 soorten verklaringen:

  1. Een authentication statement zegt hoe en wanneer de gebruiker is ingelogd.
  2. Een attribute statement geeft eigenschappen van de gebruiker door, zoals naam, e-mailadres of afdeling.
  3. Een authorization decision statement zegt wat de gebruiker mag doen.

SAML is daarmee een bouwsteen voor SSO (single sign-on): 1 keer inloggen voor meerdere diensten. SAML is niet het enige protocol voor SSO. OpenID Connect doet hetzelfde met een modernere techniek die beter past bij apps en API’s. Beide horen bij IAM (identity and access management), het regelen van identiteiten en toegangsrechten in een organisatie.

Hoe werkt SAML?

Bij SAML spelen 3 partijen een rol: de gebruiker, de identity provider (IdP) en de service provider (SP). De identity provider regelt het inloggen. De service provider is de dienst of applicatie waar de gebruiker naartoe wil. Een veelvoorkomende route, die OASIS “SP-initiated” noemt, gaat zo:

  1. Open als gebruiker de applicatie van de service provider.
  2. Laat de service provider je doorsturen naar de identity provider met een verzoek om te bevestigen wie je bent.
  3. Log in bij de identity provider, bijvoorbeeld met wachtwoord en MFA.
  4. Laat de identity provider een ondertekende assertion terugsturen via de browser naar de service provider.
  5. Laat de service provider de handtekening controleren en je toegang geven.

De handtekening werkt met certificaten, zodat de service provider kan controleren dat de assertion echt van de identity provider komt en onderweg niet is veranderd. Daarvoor is PKI nodig, het stelsel van digitale certificaten en sleutels. Het omgekeerde kan ook: de gebruiker logt eerst in bij de identity provider en kiest daarna een dienst (“IdP-initiated”).

SAML 2.0OpenID Connect
BerichtformaatXMLJSON
Gebruikelijke toepassingWebapplicaties in organisaties en tussen organisatiesWeb, mobiele apps en API’s
Status bij de Nederlandse overheidVerplicht (pas toe of leg uit), versie 2.0Verplicht via het profiel OpenID.NLGov, versie 1.0.1, beheerd door Logius

Voorbeeld uit de praktijk

De Nederlandse overheid heeft SAML verplicht gesteld via de lijst van het Forum Standaardisatie. Op 21 september 2023 besloot het Forum dat de Authenticatie-standaarden SAML 2.0 en OpenID.NLGov 1.0.1, het Nederlandse overheidsprofiel op OpenID Connect, op de pas-toe-of-leg-uitlijst komen (bron: Forum Standaardisatie). Pas toe of leg uit betekent dat overheden de standaard moeten uitvragen bij de aanschaf van ICT, of moeten uitleggen waarom ze dat niet doen.

De plicht geldt voor aanbieders van identitydiensten, zoals identity providers en identity brokers. Zij moeten beide standaarden ondersteunen richting overheden met digitale diensten, zodat die zelf kunnen kiezen. Volgens het Forum maken onder andere DigiD, eHerkenning en Single Sign On Rijk gebruik van authenticatie-standaarden. Het Forum adviseerde DigiD, eHerkenning en Logius om binnen 1 jaar een transitiestrategie op te stellen voor de overgang van SAML naar OpenID.NLGov.

SAML in de praktijk van een security-professional

Een security architect of IAM-specialist komt SAML tegen bij het koppelen van applicaties aan een centrale identity provider. Die legt vast welke attributen worden doorgegeven, beheert de certificaten en controleert of verlopen certificaten op tijd worden vervangen. Een verlopen certificaat kan ervoor zorgen dat niemand meer kan inloggen.

Voor een information security officer telt vooral dat SSO via SAML het aantal wachtwoorden beperkt en inloggen centraal regelt. Dat maakt de identity provider wel een belangrijk doelwit: wie daar binnenkomt, heeft toegang tot alle gekoppelde diensten. MFA op de identity provider en het snel intrekken van accounts bij vertrek van medewerkers horen daarom bij een goede inrichting. Dat past in een zero trust-aanpak, waarin elke toegang opnieuw wordt gecontroleerd.

Veelgestelde vragen

Wat is SAML?

SAML staat voor Security Assertion Markup Language. Het is een open standaard van OASIS waarmee een identity provider aan een dienst bevestigt wie een gebruiker is en welke rechten die heeft. De bevestiging is een ondertekend XML-bericht, een assertion. SAML 2.0 is sinds 2005 de gangbare versie en wordt veel gebruikt voor single sign-on.

Wat is het verschil tussen SAML en SSO?

SSO (single sign-on) is het principe: 1 keer inloggen voor meerdere diensten. SAML is een van de technische standaarden waarmee je SSO bouwt. SSO kan ook werken met andere protocollen, zoals OpenID Connect. SAML is dus een manier om SSO te realiseren, niet hetzelfde als SSO.

Wat is het verschil tussen SAML en OpenID Connect?

Beide standaarden regelen inloggen via een identity provider. SAML gebruikt XML-berichten en is vooral in gebruik bij webapplicaties van organisaties. OpenID Connect gebruikt JSON en past beter bij mobiele apps en API’s. De Nederlandse overheid verplicht beide, maar stuurt aan op een overgang van SAML naar OpenID.NLGov, het Nederlandse profiel op OpenID Connect.

Is SAML verplicht voor de overheid?

Ja, voor aanbieders van identitydiensten aan de overheid. Sinds 21 september 2023 staan SAML 2.0 en OpenID.NLGov samen als Authenticatie-standaarden op de pas-toe-of-leg-uitlijst van het Forum Standaardisatie. Identity providers moeten beide ondersteunen. Overheden met digitale diensten mogen zelf kiezen welke van de 2 standaarden ze gebruiken.

Bronnen

  1. Forum Standaardisatie: Authenticatie-standaarden (OpenID.NLGov en SAML)
  2. OASIS: Members approve Security Assertion Markup Language (SAML) v2.0 as OASIS Standard (2005)
  3. OASIS: Security Assertion Markup Language (SAML) V2.0 Technical Overview

Gerelateerde begrippen

  • SSO (single sign-on)

    SSO staat voor single sign-on: je logt 1 keer in en krijgt daarna toegang tot meerdere applicaties zonder opnieuw een wachtwoord in te voeren. Een centrale dienst, de identity provider, controleert wie je bent en geeft dat door aan de andere applicaties. Omdat 1 account dan toegang geeft tot alles, hoort SSO samen te gaan met MFA.

  • IAM (identity and access management)

    IAM staat voor identity and access management: het geheel van beleid, processen en systemen waarmee een organisatie bepaalt wie toegang krijgt tot welke systemen en gegevens. IAM zorgt dat elke medewerker een eigen account heeft, alleen de rechten krijgt die nodig zijn voor het werk en die rechten weer kwijtraakt bij een andere functie of vertrek.

  • MFA (multifactorauthenticatie)

    MFA in security staat voor multifactorauthenticatie: inloggen waarbij je met meerdere onafhankelijke factoren bewijst wie je bent. Je combineert bijvoorbeeld iets wat je weet (wachtwoord), iets wat je hebt (telefoon) en iets wat je bent (vingerafdruk). Wie alleen je wachtwoord steelt, komt daardoor niet in je account.

  • PKI (public key infrastructure)

    PKI staat voor public key infrastructure: het stelsel van organisaties, afspraken en techniek waarmee digitale certificaten worden uitgegeven, beheerd en ingetrokken. Een certificaat koppelt een publieke sleutel aan een persoon, organisatie of server. Een vertrouwde certificaatautoriteit staat met haar digitale handtekening garant voor die koppeling. Zo maakt PKI versleutelde verbindingen en digitale handtekeningen mogelijk.

  • Zero trust

    Zero trust is een securitystrategie die als uitgangspunt neemt dat je niets en niemand automatisch vertrouwt, ook niet binnen het eigen netwerk. Elke gebruiker en elk apparaat moet bij elke toegang opnieuw bewijzen wie hij is en krijgt alleen de rechten die nodig zijn. Zo komt een aanvaller die binnen is niet vanzelf verder.