Federated identity: SAML, OAuth en OpenID Connect
Leer hoe SSO, SAML-assertions, OAuth 2.0-flows en OpenID Connect-tokens gebruikers veilig één keer laten authenticeren voor toegang tot meerdere applicaties.
Federated identity: SAML, OAuth en OpenID Connect is een gratis Cloud & IT Cert Prep-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cloud & IT Cert Prep. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Het identiteitsprobleem tussen domeinen
In moderne ondernemingen moeten medewerkers toegang hebben tot tientallen toepassingen — cloudapps, SaaS-hulpmiddelen, partnerportalen en interne systemen — die elk mogelijk door andere organisaties worden beheerd. Voor elk systeem afzonderlijke accounts aanmaken en beheren is onveilig (een overvloed aan inloggegevens) en inefficiënt. Federated identity lost dit op doordat een Identity Provider (IdP) — een vertrouwde, gezaghebbende bron van identiteitsgegevens — gebruikers kan authenticeren en die geauthenticeerde identiteit kan delen met Service Providers (SP's) over organisatiegrenzen heen. Gebruikers authenticeren één keer en krijgen toegang tot meerdere systemen zonder hun inloggegevens opnieuw in te voeren.
De basis van Single Sign-On (SSO)
Met Single Sign-On (SSO) kunnen gebruikers zich één keer authenticeren en binnen een sessie toegang krijgen tot meerdere toepassingen zonder opnieuw te authenticeren. De gebruiker meldt zich aan bij de Identity Provider (corporate Active Directory, Okta, Azure AD), ontvangt een sessietoken of bewering en biedt dit token aan bij elke Service Provider die de gebruiker bezoekt. SSO verbetert de beveiliging doordat het aantal wachtwoorden dat gebruikers moeten beheren afneemt (waardoor hergebruik wordt verminderd), centraal beleid voor authenticatie kan worden afgedwongen en toegang onmiddellijk kan worden ingetrokken voor alle geïntegreerde toepassingen wanneer een account op IdP-niveau wordt uitgeschakeld.
SAML 2.0: federatie op basis van XML
SAML (Security Assertion Markup Language) 2.0 is de op XML gebaseerde open standaard voor het uitwisselen van authenticatie- en autorisatiegegevens tussen Identity Providers en Service Providers. De SAML-stroom verloopt als volgt: (1) de gebruiker opent een Service Provider (bijvoorbeeld Salesforce), (2) de SP verwijst door naar de Identity Provider (bijvoorbeeld Okta), (3) de gebruiker authenticeert zich bij de IdP, (4) de IdP geeft een ondertekende XML-SAML Assertion uit met de identiteit en kenmerken van de gebruiker, (5) de bewering wordt teruggestuurd naar de SP, (6) de SP valideert de handtekening van de bewering met de openbare sleutel van de IdP en verleent toegang. SAML wordt veel gebruikt voor enterprise-SSO in webtoepassingen.
<!-- Simplified SAML Assertion structure -->
<saml:Assertion xmlns:saml='urn:oasis:names:tc:SAML:2.0:assertion'
IssueInstant='2026-06-21T10:00:00Z'
ID='_abc123'>
<saml:Issuer>https://idp.company.com</saml:Issuer>
<saml:Subject>
<saml:NameID>alice@company.com</saml:NameID>
</saml:Subject>
<saml:Conditions NotBefore='2026-06-21T10:00:00Z'
NotOnOrAfter='2026-06-21T10:05:00Z'/>
<saml:AttributeStatement>
<saml:Attribute Name='groups'>
<saml:AttributeValue>Sales</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
<!-- Signature verifies IdP signed this assertion -->
</saml:Assertion>SAML-rollen: IdP, SP en Principal
Drie partijen nemen deel aan een SAML-federatie. De Principal is de gebruiker (of het systeem) die toegang zoekt — deze initieert het authenticatieproces. De Identity Provider (IdP) is de gezaghebbende bron van identiteitsgegevens die de principal authenticeert en beweringen uitgeeft — voorbeelden zijn Microsoft Azure AD, Okta, Ping Identity en ADFS. De Service Provider (SP) gebruikt de bewering en verleent op basis daarvan toegang — voorbeelden zijn Salesforce, Google Workspace, AWS en elke toepassing die SAML ondersteunt. De SP en IdP stellen vooraf vertrouwen in elkaar door metadata uit te wisselen met de URL's van elkaars eindpunten en ondertekeningscertificaten.
OAuth 2.0: autorisatieframework
OAuth 2.0 is een framework voor autorisatie (geen authenticatieprotocol) waarmee een toepassing van een derde partij namens een gebruiker toegang kan krijgen tot resources zonder de inloggegevens van de gebruiker bloot te geven. Een klassiek gebruiksscenario is: 'Sta deze fotobewerkingsapp toe om toegang te krijgen tot uw Google Photos.' OAuth 2.0 introduceert vier rollen: de Resource Owner (gebruiker), de Client (app van een derde partij), de Authorization Server (geeft tokens uit) en de Resource Server (biedt de beveiligde resource aan). De gebruiker autoriseert de client, die een access token ontvangt en dit aan de resource server aanbiedt — zonder ooit het werkelijke wachtwoord van de gebruiker nodig te hebben.
OAuth 2.0 Authorization Code Flow
De Authorization Code Flow is de veiligste OAuth 2.0-stroom voor webtoepassingen. De stroom verloopt als volgt: (1) de client verwijst de gebruiker door naar de Authorization Server met de gevraagde scopes; (2) de gebruiker authenticeert zich en geeft toestemming bij de Authorization Server; (3) de Authorization Server verwijst terug met een kortlevende authorization code; (4) de client wisselt de code in voor een access token (en optioneel een refresh token) via een aanroep van server naar server met clientgegevens; (5) de client gebruikt het access token om de Resource Server aan te roepen. Het uitwisselen van de code gebeurt aan de serverzijde, waardoor wordt voorkomen dat het access token zichtbaar wordt in de browsergeschiedenis of logboeken.
# OAuth 2.0 Authorization Code Flow (step 3-4)
# Step 3: User is redirected back to client with auth code
# GET https://app.example.com/callback?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz
# Step 4: Client exchanges code for access token (server-to-server)
curl -X POST https://auth.example.com/oauth2/token \
-d 'grant_type=authorization_code' \
-d 'code=SplxlOBeZQQYbYS6WxSbIA' \
-d 'redirect_uri=https://app.example.com/callback' \
-d 'client_id=client_abc' \
-d 'client_secret=secret_xyz'
# Response: {'access_token': 'MTQ0Nj...', 'token_type': 'Bearer', 'expires_in': 3600}OpenID Connect: authenticatie toevoegen aan OAuth
OpenID Connect (OIDC) is een authenticatielaag die boven op OAuth 2.0 is gebouwd. OAuth biedt alleen autorisatie (access tokens bewijzen wat de client kan doen); OIDC voegt authenticatie toe (een ID token dat bewijst wie de gebruiker is). OIDC voegt een openid-scope toe aan de OAuth-stroom en retourneert naast het access token een ondertekend JWT (JSON Web Token) ID Token. Het ID token bevat claims (naam, e-mail, sub [subject identifier]) die de gebruiker identificeren. OIDC is nu het dominante protocol voor SSO voor consumenten — de knoppen 'Aanmelden met Google/Apple/Microsoft' gebruiken allemaal OIDC.
# OIDC ID Token is a JWT with three base64url-encoded parts:
# header.payload.signature
# Decoded payload example:
# {
# 'iss': 'https://accounts.google.com',
# 'sub': '110169484474386276334',
# 'aud': 'client_id_abc123',
# 'exp': 1750000000,
# 'iat': 1749996400,
# 'email': 'alice@gmail.com',
# 'name': 'Alice Smith',
# 'email_verified': true
# }
# The signature is verified with the IdP's public key (from JWKS endpoint)JWT: tokens in moderne authenticatie
JSON Web Tokens (JWT) zijn een compact, URL-veilig formaat om claims tussen partijen weer te geven. Een JWT bestaat uit drie met base64url gecodeerde delen, gescheiden door punten: Header (algoritme en type token), Payload (claims: iss, sub, aud, exp, iat en aangepaste claims) en Signature (cryptografische handtekening die de integriteit van het token verifieert). JWT's zijn zelfvoorzienend — de Resource Server kan ze verifiëren zonder de Authorization Server opnieuw aan te roepen, wat de prestaties verbetert en stateless architecturen mogelijk maakt. De essentiële beveiligingsvereiste is: verifieer altijd de JWT-handtekening en controleer de claims exp (vervaldatum) en aud (doelgroep).
# Decode a JWT (header and payload are just base64 encoded)
import base64, json
jwt = 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFsaWNlIiwiZXhwIjoxNzUwMDAwMDAwfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
parts = jwt.split('.')
print('Header:', json.loads(base64.b64decode(parts[0] + '==')))
print('Payload:', json.loads(base64.b64decode(parts[1] + '==')))
# Signature (parts[2]) must be verified with IdP public key!SAML vs. OAuth vs. OIDC: wanneer gebruikt u welke
Voor het Security+-examen is het essentieel dat je begrijpt wanneer elke standaard van toepassing is. SAML 2.0: enterprise-SSO voor webtoepassingen, browsergebaseerde stromen en XML-beweringen. Verouderd, maar veel gebruikt in ondernemingen. OAuth 2.0: API-autorisatie — apps van derden beperkte toegang tot resources geven. Authenticeert gebruikers niet rechtstreeks. OIDC: authenticatie voor consumenten en moderne ondernemingen (SSO), gebouwd op OAuth 2.0. Retourneert JWT ID tokens die de gebruiker identificeren. In de praktijk gebruiken ondernemingen vaak SAML voor SSO naar toepassingen en OIDC voor authenticatie van API's en mobiele toepassingen. Moderne cloud-native omgevingen geven de voorkeur aan OIDC boven SAML vanwege het JSON/JWT-formaat en de betere ondersteuning voor mobiele toepassingen.
Aanvalsvectoren bij federatie
Systemen voor federated identity brengen specifieke aanvalsvectoren met zich mee. Replayaanvallen op beweringen: een aanvaller onderschept een SAML-bewering en speelt deze opnieuw af om toegang te krijgen. Dit wordt beperkt door korte levensduren van beweringen en bewerings-ID's die slechts één keer kunnen worden gebruikt. XML-signature wrapping (XSW): bij SAML kunnen aanvallers ondertekende XML soms manipuleren om claims te wijzigen, terwijl de handtekening geldig blijft voor de oorspronkelijke inhoud. Verwarring over JWT-algoritmen: als een server zowel RS256 (asymmetrisch) als HS256 (symmetrisch) accepteert, kan een aanvaller JWT's vervalsen door de openbare sleutel van de server als HMAC-geheim voor HS256 te gebruiken. Valideer altijd dat het algoritme in de header overeenkomt met het verwachte algoritme. Open redirectors: OAuth-redirect-URI's moeten exact overeenkomen om diefstal van tokens door omleiding naar websites van aanvallers te voorkomen.
Directoryfederatie en SCIM
Voor federatie van identiteiten in ondernemingen moeten identiteitsgegevens van gebruikers vaak tussen systemen worden gesynchroniseerd. SCIM (System for Cross-domain Identity Management) is een REST API-standaard voor het automatiseren van het aanmaken en intrekken van gebruikersaccounts tussen een Identity Provider en verbonden Service Providers. Wanneer een nieuwe medewerker wordt toegevoegd aan Azure AD (IdP), maakt SCIM automatisch een account aan in Salesforce, Slack, GitHub en andere SCIM-compatibele apps. Wanneer het dienstverband van de medewerker eindigt, deactiveert SCIM alle accounts gelijktijdig — zo wordt de periode afgesloten waarin achtergebleven accounts kunnen worden misbruikt. SCIM vormt een aanvulling op SSO-protocollen (SAML/OIDC) door het levenscyclusbeheer af te handelen dat SSO-protocollen niet behandelen.
Kennischeck
Toets je begrip van de CompTIA Security+- (SY0-701) concepten uit deze les.
Samenvatting van de les
In deze les heb je geleerd: SAML 2.0 gebruikt XML-beweringen voor browsergebaseerde enterprise-SSO; OAuth 2.0 is een autorisatieframework voor het delegeren van toegang tot API's; OpenID Connect voegt authenticatie (JWT ID tokens) toe boven op OAuth; en SCIM automatiseert identiteitslevenscyclusbeheer tussen gefedereerde systemen. Hiermee is de cursus Authentication and Authorization voltooid — hierna behandelen we de basisprincipes van netwerkbeveiliging.
Leer Cloud & IT Cert Prep met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 150
- Lessen
- 600
Veelgestelde vragen
Is de les “Federated identity: SAML, OAuth en OpenID Connect” gratis?
Ja — de volledige tekst van “Federated identity: SAML, OAuth en OpenID Connect” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cloud & IT Cert Prep wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Wat leer ik in “Federated identity: SAML, OAuth en OpenID Connect”?
Leer hoe SSO, SAML-assertions, OAuth 2.0-flows en OpenID Connect-tokens gebruikers veilig één keer laten authenticeren voor toegang tot meerdere applicaties. Je oefent met Cloud & IT Cert Prep door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Cloud & IT Cert Prep te beginnen?
Ervaring vooraf is niet nodig. Cloud & IT Cert Prep op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Federated identity: SAML, OAuth en OpenID Connect”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Cloud & IT Cert Prep?
Ja. Elke les over Cloud & IT Cert Prep bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Wachtwoordbeleid en multifactorauthenticatie
- Biometrie en authenticatie met tokens
- Autorisatiemodellen: RBAC, MAC en DAC
- Federated identity: SAML, OAuth en OpenID Connect