Wat is SAML en hoe werkt het?

Security Assertion Markup Language (SAML) is een open standaard waarmee identiteitsaanbieders (IdP) autorisatiegegevens kunnen doorgeven aan serviceproviders (SP). Wat dat jargon betekent, is dat u één set referenties kunt gebruiken om in te loggen op veel verschillende websites. Het is veel eenvoudiger om één login per gebruiker te beheren dan aparte logins voor e-mail, customer relationship management (CRM) software, Active Directory, etc.

SAML transacties maken gebruik van Extensible Markup Language (XML) voor gestandaardiseerde communicatie tussen de identity provider en de service providers. SAML vormt de schakel tussen de authenticatie van de identiteit van een gebruiker en de autorisatie om een dienst te gebruiken.

Geef het gratis EBook over pentests voor Active Directory-omgevingen

“Dit heeft me echt de ogen geopend voor AD-beveiliging op een manier die verdedigingswerk nooit heeft gedaan.”

Het OASIS Consortium heeft SAML 2.0 in 2005 goedgekeurd. De standaard is aanzienlijk veranderd ten opzichte van 1.1, zozeer zelfs dat de versies niet meer compatibel zijn. Dankzij SAML kunnen IT-afdelingen software-as-a-service-oplossingen (SaaS) gebruiken en tegelijkertijd een veilig gefedereerd identiteitsbeheersysteem handhaven.

SAML maakt Single-Sign On (SSO) mogelijk, een term die betekent dat gebruikers eenmalig kunnen inloggen, en dezelfde referenties kunnen worden hergebruikt om in te loggen bij andere dienstverleners.

Waarvoor wordt SAML gebruikt?

SAML vereenvoudigt gefedereerde authenticatie- en autorisatieprocessen voor gebruikers, identiteitsaanbieders en dienstverleners. SAML biedt een oplossing om uw identity provider en service providers los van elkaar te laten bestaan, waardoor het gebruikersbeheer wordt gecentraliseerd en toegang tot SaaS-oplossingen wordt geboden.

SAML implementeert een veilige methode om authenticaties en autorisaties van gebruikers door te geven tussen de identity provider en service providers. Wanneer een gebruiker inlogt op een SAML enabled applicatie, vraagt de service provider autorisatie aan de juiste identity provider. De identity provider verifieert de gebruikersgegevens en stuurt de autorisatie terug naar de service provider, waarna de gebruiker de applicatie kan gebruiken.

SAML authenticatie is het proces van het verifiëren van de identiteit en de gegevens van de gebruiker (wachtwoord, twee-factor authenticatie, etc.). SAML authorization vertelt de service provider welke toegang hij de geauthenticeerde gebruiker moet geven.

Wat is een SAML provider?

Twee soorten SAML providers
Een SAML provider is een systeem dat een gebruiker helpt toegang te krijgen tot een dienst die hij nodig heeft. Er zijn twee hoofdtypen SAML-providers: service providers en identity providers.

Een service provider heeft de authenticatie van de identity provider nodig om autorisatie aan de gebruiker te kunnen verlenen.

Een identity provider voert de authenticatie uit dat de eindgebruiker is wie hij zegt dat hij is en stuurt die gegevens naar de service provider, samen met de toegangsrechten van de gebruiker voor de service.

Microsoft Active Directory of Azure zijn veelgebruikte identity providers. Salesforce en andere CRM-oplossingen zijn meestal serviceproviders, in die zin dat ze voor de authenticatie van gebruikers afhankelijk zijn van een identity provider.

Wat is een SAML Assertion?

Een SAML Assertion is het XML-document dat de identity provider naar de service provider stuurt en dat de autorisatie van de gebruiker bevat. Er zijn drie verschillende soorten SAML Assertions – authentication, attribute, en authorization decision.

  • Authentication assertions bewijzen de identificatie van de gebruiker en geven de tijd aan waarop de gebruiker heeft ingelogd en welke authenticatie methode hij heeft gebruikt (bijv, Kerberos, 2 factor, etc.)
  • De attributie assertie geeft de SAML attributen door aan de service provider – SAML attributen zijn specifieke stukjes data die informatie geven over de gebruiker.
  • Een authorization decision assertion zegt of de gebruiker geautoriseerd is om de dienst te gebruiken of dat de identiteitsaanbieder zijn verzoek heeft afgewezen vanwege een wachtwoordfout of gebrek aan rechten op de dienst.

Hoe werkt SAML?

SAML werkt door informatie over gebruikers, logins, en attributen door te geven tussen de identiteitsaanbieder en de dienstverleners. Elke gebruiker logt eenmalig in bij Single Sign On bij de identiteitsaanbieder, en vervolgens kan de identiteitsaanbieder SAML attributen doorgeven aan de service provider wanneer de gebruiker toegang probeert te krijgen tot deze diensten. De service provider vraagt de autorisatie en authenticatie aan bij de ident provider. Omdat beide systemen dezelfde taal spreken – SAML – hoeft de gebruiker maar één keer in te loggen.

Elke identiteitsaanbieder en dienstaanbieder moeten het eens worden over de configuratie voor SAML. Beide uiteinden moeten de exacte configuratie hebben om de SAML-authenticatie te laten werken.

SAML-voorbeeldstappen

SAML-voorbeeld

  1. Frodo (gebruiker) logt ’s ochtends vroeg in bij SSO.
  2. Frodo probeert vervolgens de webpagina naar zijn CRM te openen.
  3. Het CRM – de dienstverlener – controleert Frodo’s geloofsbrieven bij de identiteitsprovider.
  4. De identiteitsprovider stuurt autorisatie- en authenticatieberichten terug naar de dienstverlener, waardoor Frodo kan inloggen in het CRM.
  5. Frodo kan het CRM gebruiken en werk gedaan krijgen.
    “Heb 8 vrijwilligers nodig voor een zwaar project…”

SAML vs. OAuth

OAuth is een iets nieuwere standaard die mede is ontwikkeld door Google en Twitter om gestroomlijnde internetlogins mogelijk te maken. OAuth gebruikt een vergelijkbare methode als SAML om inloggegevens te delen. SAML biedt bedrijven meer controle om hun SSO logins veiliger te maken, terwijl OAuth beter is voor mobiel gebruik en gebruik maakt van JSON.

Facebook en Google zijn twee OAuth providers die je zou kunnen gebruiken om in te loggen op andere internet sites.

SAML Tutorials

Een paar bronnen om te helpen onderzoeken hoe SAML precies moet worden geïmplementeerd:

  • Configure SAML for Salesforce
  • Configure OKTA as SAML IDP
  • OneLogin heeft voorbeelden in 5 verschillende programmeertalen

SAML en SSO zijn belangrijk voor elke cybersecurity-strategie van ondernemingen. Best practices op het gebied van identiteitsbeheer vereisen dat gebruikersaccounts worden beperkt tot alleen die resources die de gebruiker nodig heeft om zijn werk te doen en dat ze centraal worden gecontroleerd en beheerd. Door een SSO-oplossing te gebruiken, kunt u accounts vanuit één systeem uitschakelen en de toegang tot alle beschikbare bronnen in één keer verwijderen, waardoor uw gegevens tegen diefstal worden beschermd.