OAuth uitgelegd: rollen, de PKCE-flow en OAuth vs SAML

OAuth uitgelegd

Wat is OAuth? Rollen, PKCE-flow, OAuth vs SAML vs OIDC | We.Inc

OAuth 2.0 in gewone taal: vier rollen, de authorization code flow met PKCE stap voor stap, scopes, en hoe OAuth verschilt van OpenID Connect en SAML.

OAuth 2.0 is een standaard waarmee de ene app namens u kan handelen bij een andere dienst, zonder ooit uw wachtwoord te zien. U keurt een verzoek goed op de eigen inlogpagina van die dienst, en de app krijgt een access token dat beperkt is tot de scopes waarmee u akkoord ging. Het regelt autorisatie; OpenID Connect voegt daar inloggen aan toe.

OAuth 2.0 vs OpenID Connect vs SAML 2.0

Vóór OAuth betekende het koppelen van twee diensten vaak dat u het wachtwoord van de ene in de andere typte. OAuth verving dat door kortlevende tokens met een smalle scope, die pas worden uitgegeven nadat u akkoord geeft. De generator hieronder maakt in uw browser een echte PKCE-verifier en -challenge en bouwt de autorisatie-URL, zodat u elke parameter ziet die de flow gebruikt.

Veelgestelde vragen

Is OAuth authenticatie of autorisatie?

Autorisatie. Een access token zegt wat een app mag doen, niet wie de gebruiker is, en API's vertellen u dat misschien niet eens. Hebt u de identiteit van de persoon nodig, gebruik dan OpenID Connect, dat een ondertekend ID-token teruggeeft met claims zoals sub, iss, aud en exp.

Wat is PKCE en heb ik het nodig?

PKCE (RFC 7636) koppelt de autorisatiecode aan de app die de flow startte. De app stuurt eerst een hash van een willekeurig geheim en later het geheim zelf, waardoor een gestolen code nutteloos is. Gebruik S256, dat servers moeten ondersteunen, in plaats van plain.

Wat is het verschil tussen OAuth en SAML?

SAML is een oudere, op XML gebaseerde standaard waarbij een identiteitsprovider een ondertekende assertion over de gebruiker naar een serviceprovider stuurt, vooral voor zakelijke single sign-on in browsers. OAuth geeft tokens uit voor API-toegang en werkt goed voor mobiele apps en API's. OpenID Connect is binnen de OAuth-wereld het dichtste equivalent van inloggen met SAML.

Wat zijn scopes?

Scopes zijn de rechten waar een app om vraagt, geschreven als een door spaties gescheiden lijst hoofdlettergevoelige strings die de autorisatieserver definieert, bijvoorbeeld openid email of repo read:user. Het toestemmingsscherm toont ze, en het token dekt alleen wat is goedgekeurd.

Moet ik de implicit flow nog gebruiken?

Niet voor nieuw werk. Die gaf tokens terug in het URL-fragment, waar ze via de geschiedenis en logs kunnen uitlekken. De authorization code flow met PKCE geeft browser-apps hetzelfde gemak zonder dat risico.

De vier rollen

Waarom de code-uitwisseling bestaat

Waar OpenID Connect past

De authorization code flow met PKCE

Elke stap en de parameters die erbij horen

PKCE in code

Een verifier en S256-challenge maken in de browser

32 willekeurige bytes, gecodeerd als base64url, geven een verifier van 43 tekens, de kortste lengte die RFC 7636 toestaat.

De code inwisselen voor tokens

Draait na de redirect. Vergelijk eerst state en stuur daarna de opgeslagen verifier mee met de code.

Generator voor PKCE en autorisatie-URL

Maakt met de crypto van uw browser een verse code_verifier en de bijbehorende S256-code_challenge, en stelt daarna een autorisatie-URL samen uit uw instellingen. Er wordt niets verstuurd; het endpoint hieronder is een placeholder die u vervangt.

Autorisatie-endpoint

Scopes (door spaties gescheiden)

Nieuwe verifier

code_verifier ({n} tekens, geheimhouden tot stap 4)

code_challenge (S256)

Autorisatie-URL

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap