SAML en OAuth: overeenkomsten en verschillen

Security Assertion Markup Language (SAML) is een authenticatieproces. Als u 's morgens op uw werk komt en inlogt bij uw computer, is er een grote kans dat u gebruikmaakt van SAML.

Open Authorization (OAuth) is een autorisatieproces. Hiermee kunt u van de ene service naar de andere gaan zonder dat u weer een gebruikersnaam en wachtwoord hoeft te typen. Als u bent ingelogd bij Google en die inloggegevens hebt gebruikt voor Hootsuite, hebt u OAuth gebruikt.

Beide applicaties kunnen worden gebruikt voor single sign-on (SSO) op het web. Daarbij gaat SAML specifiek uit van de gebruiker, OAuth daarentegen van een applicatie. De twee zijn niet uitwisselbaar en daarom gaan we ze niet specifiek vergelijken, maar bespreken we hoe ze samenwerken.

Hoe werkt SAML?

SAML is een open standaard voor het verifiëren van identity en biedt authenticatie. In een doorsnee kantooromgeving moet een werknemer zich aanmelden om toegang te krijgen tot een bepaald deel van de interne functies van de organisatie.

Met SAML-authenticatie kan de gebruiker toegang krijgen tot een reeks tools, waaronder het bedrijfsintranet, Microsoft Office en een browser. Met SAML heeft de gebruiker toegang tot al deze resources met één digitale handtekening.

In organisaties met een strengere beveiliging kan de gebruiker met SAML alleen een deur openen of een computerscherm ontgrendelen. Er is autorisatie vereist voordat de gebruiker iets anders kan doen, zoals het openen van bestanden.

Netwerkbeheerders kunnen met SAML gebruikers vanaf een centrale locatie beheren. Met één wachtwoord worden alle services die iemand nodig heeft ontgrendeld en wordt bovendien bijgedragen aan de beveiliging van de organisatie.

SAML diagram

Een typische SAML-workflow ziet er zo uit:

  • Aanvraag: een gebruiker klikt op een knop voor inloggen.
  • Validatie: de SAML en de identity provider maken met elkaar verbinding voor authenticatie.
  • Login: de gebruiker ziet een scherm voor het invullen van een gebruikersnaam en wachtwoord.
  • Token wordt gemaakt: als de gebruiker de juiste gegevens invoert, wordt er een SAML-token naar de serviceprovider gestuurd, waardoor de gebruiker kan inloggen bij de server.

Met deze workflow kunnen een serviceprovider, een browser en een identity provider naadloos informatie uitwisselen. Het is goed mogelijk dat de gebruiker geen enkele vertraging merkt omdat dit proces meestal in enkele seconden wordt uitgevoerd.

Hoe werkt OAuth?

Waar "Auth" kan duiden op "Authenticatie" of "Autorisatie", betekent het in het OAuth-protocol specifiek autorisatie. Met dit protocol wordt autorisatie doorgestuurd van de ene service naar de andere, waarbij de gebruikersnaam en het wachtwoord van die persoon beveiligd blijven.

Zie OAuth als een manier om tijd te besparen in een omgeving waar de gemiddelde werknemer zo'n slordige 1100 keer per dag van de ene naar de andere werkapplicatie gaat. Soms willen werknemers een manier om van de ene naar de andere app te gaan zonder dat ze opnieuw moeten inloggen. OAuth maakt dat mogelijk.

Laten we eens uitgaan van een werknemer met een actief Google-account. Die gebruiker zou dezelfde inloggegevens kunnen gebruiken voor toegang tot:

  • Hootsuite
  • SurveyMonkey
  • HotJar
  • Microsoft 365
  • Salesforce
  • Marketo
  • Box

De werknemer heeft voor het werk al deze webgebaseerde programma's nodig. Maar diezelfde persoon schrikt er misschien voor terug om vijf verschillende sets van gebruikersnamen en wachtwoorden te maken (en te onthouden).

Het dubbel gebruiken van gebruikersnamen en wachtwoorden vormt een beveiligingsrisico. Als één site wordt gehackt, maakt dat de kritieke data van de gebruiker kwetsbaar op alle platforms. Maar inloggen bij een andere site met de validatie die door de eerste site is gegeven, is heel anders.

Sommige gebruikers maken zich zorgen over datamining en vinden dat een dergelijke tool bedrijven als Facebook te veel macht geeft. Telkens wanneer een gebruiker een Facebook-login selecteert voor andere apps en sites, krijgt Facebook meer inzicht in het gedrag van zijn gebruikers. En als de data van Facebook wordt gehackt, kan dat dan ook gebeuren met de andere logins van die gebruiker.

Maar de meeste werknemers zijn wellicht blij dat ze tijd kunnen besparen in drukke, stressvolle tijden.

OAuth option

Een OAuth-workflow ziet er zo uit:

  • Aanvraag: een gebruiker klikt op een knop voor inloggen op een webpagina.
  • Keuze: de client kiest voor gebruik van de inloggegevens van derden.
  • Inloggen: de autorisatieserver maakt een toegangstoken dat naar de resourceserver wordt verzonden.
  • Verbinding: nadat het token is geverifieerd, geeft de resourceserver toegang.

Tijdens dit proces sturen de twee servers informatie heen en weer. OAuth gebruikt meestal JWT voor tokens, maar dat kan ook JavaScript Object Notation zijn.

Ongeacht hoe ze worden gemaakt, tokens zijn altijd gecodeerd, meestal ondertekend, maar zelden versleuteld als ze van de ene server naar de andere worden doorgegeven.

OAuth en SAML: overeenkomsten en verschillen

OAuth en SAML zijn beide protocollen om interoperabiliteit aan te moedigen en te standaardiseren.

Mensen gebruiken deze tools om een steeds verder uitdijende lijst met gebruikersnamen en wachtwoorden te vermijden die de toegang tot cruciale bronnen blokkeren. OAuth en SAML maken onboarding makkelijk voor app-eigenaren en bieden de mogelijkheid om het gebruikersbeheer te delegeren. Voor beheerders bieden deze tools snelle integratie en gecentraliseerde authenticatie en autorisatie.

Maar de twee tools werken met compleet verschillende functies zoals:

  • Authenticatie. Bij dit proces is de identiteit van een gebruiker betrokken. SAML lijkt een beetje op een huissleutel omdat het toegang geeft tot de faciliteit.
  • Autorisatie. Bij dit proces zijn de rechten van een gebruiker betrokken. OAuth heeft wat weg van huisregels die aangeven wat iemand wel en niet kan doen in huis.

Om te zien hoe dat precies in zijn werk gaat, nemen we een werknemer op een gemiddelde werkdag als voorbeeld. De werknemer logt 's morgens eenmaal in met SAML. Deze login biedt toegang tot het hele pakket aan op SAML gebaseerde applicaties. De gebruiker hoeft dan alleen nog maar te klikken om van de ene naar de andere applicatie te gaan.

Wanneer gebruikt u SAML en wanneer OAuth?

SAML en OAuth maken allebei het gebruik van SSO mogelijk en ze zijn van groot belang voor productieve werknemers. Het zijn niet zozeer alternatieven als wel technologieën die kunnen samenwerken.

In de Microsoft-omgeving bijvoorbeeld, handelt OAuth de autorisatie af en SAML de authenticatie. Ze kunnen tegelijkertijd worden gebruikt om toegang te verlenen (via SAML) en toegang tot een beveiligde resource te geven (via OAuth).

U zou ook beide tools kunnen uitschakelen. Sommige webpagina's hebben bijvoorbeeld geen authenticatie of autorisatie nodig.

Maar de meeste organisaties met digitale systemen hebben wel een of andere vorm van authenticatie en autorisatie nodig om effectief te functioneren. Gebruikers moeten zich voor hun dagelijks werk kunnen aanmelden en gebruik kunnen maken van de verschillende systemen.

Hoe zit het met OpenID Connect (OIDC)?

OAuth kan belangrijk zijn als u een secundaire tool voor consumenten ontwikkelt, zoals apps of portals. Het is voor uw markt misschien handig om toegang tot uw tools te krijgen zonder dat er nieuwe gebruikersnamen en wachtwoorden moeten worden gemaakt. OAuth kan voor uw werknemers ook handig zijn als ze niet-SAML-tools gebruiken.

Maar voor een echte vergelijking met SAML kunt u het beste het verschil tussen SAML, OAuth en OpenID Connect verkennen.

Werken met Okta

Okta is vooral bekend door zijn SSO-services waarmee u kunt zorgen voor naadloze authenticatie voor de applicaties die u dagelijks gebruikt. Veilige single sign-on maakt vaak gebruik van SAML, maar Okta biedt ook verschillende andere opties, zoals een Sign-in Widget, Auth SDK (een op JavaScript gebaseerde bibliotheek), Social Login en een Authentication API voor elke mogelijke client.

Meer informatie over de kant-en-klare identity-oplossingen van Okta vindt u hier.

Referenties

A Survey on Single Sign-On Techniques. (2012). Procedia Technology.

Employees Switch Apps More Than 1,100 Times a Day, Decreasing Productivity. (December 2018). TechRepublic.

Stop Synching Your Contacts with Facebook. (Augustus 2019). Mashable.

Authentication vs. Authorization. (September 2018). Medium.

Authentication vs. Authorization. (Mei 2020). Microsoft.

Why SAML? (Security Assertion Markup Language). (Juli 2018). Medium.

Understanding Authentication, Authorization, and Encryption. Boston University.