Dit schema is een voorbeeld van een Client Credential Grant, een eenvoudige OAuth-flow die een bepaalde toepassing toelaat om (namens zichzelf, als toepassing) een call te doen naar een bepaalde API. De flow gaat als volgt: - De toepassing ("Client", in het groen) wil de KLIP API aanspreken, maar deze wordt beschermd door de ACM OAuth Authorization Server (in het oranje). De toepassing heeft daarom eerst een token (een toegangsticket) van ACM nodig. De toepassing doet daarvoor een call naar het token endpoint van de ACM OAuth Authorization Server en authentiseert zich daarbij aan de hand van een JSON Web Key (zie verder voor meer info).
- Indien de Client de nodige toelatingen heeft, krijgt hij een token terug. Dit token is beperkt in de tijd en is opaque (= het heeft op zichzelf geen betekenis, alleen de leverancier van het token kent de betekenis).
- De toepassing doet nu zijn gewenste call naar de KLIP API (in het blauw) en voegt daarbij het token toe om te bewijzen dat hij toegang heeft
- De KLIP API ontvangt de request van de toepassing, maar controleert eerst het token van de toepassing door het token aan te bieden aan het introspection-endpoint van de ACM OAuth Authorization Server
- De ACM OAuth Authorization Server bezorgt een antwoord aan de KLIP API over de validiteit van het token, met name of het token geldig is en welke scopes (rechten) het token heeft op de KLIP API (+ eventueel bijkomende informatie over de Client).
- De KLIP API verwerkt nu volledig de request van de toepassing (b.v. lezen of schrijven van bepaalde informatie in KLIP) en bezorgt een antwoord aan de toepassing.
Belangrijk bij deze flow is dat de toepassing ("Client") op voorhand moet geregistreerd zijn bij de ACM OAuth Authorization Server. Bovenstaand schema is een voorbeeld van een eenvoudige architectuur. In de praktijk gaat er b.v. langs de zijde van de KLIP API een API Gateway zijn die bepaalde handelingen namens de KLIP API doet, maar het principe blijft hetzelfde. |