Terugsturen scopes
Het Introspection Endpoint stuurt een JSON terug met daarin als belangrijkste parameters “active” en “scope”.
Voorbeeld:
HTTP/1.1 200 OK
Content-Type: application/json
{
"active": true,
"aud": "37f875cb-a7bd-4724-ac39-4729092f8412",
"client_id": "28358814-5c20-4c13-bbff-db5dd8c4ae93",
"vo_applicatienaam": "Naam applicatie afnemer",
"vo_orgnaam": "Naam organisatie afnemer",
"vo_orgcode": "123456789",
"exp": 1592208060,
"iat": 1592208000,
"iss": "https://authenticatie.vlaanderen.be/op",
"jwt": "eyJhbGciOiJSUzI1NiIsImtpZCI6Im5iblFEMnVYY0NwT0RoYVJITEtLMU9mUlp5Vkx2MkVVSHBVeU12TEJ6aVUifQ.eyJhY3RpdmUiOnRydWUsImF1ZCI6IjM3Zjg3NWNiLWE3YmQtNDcyNC1hYzM5LTQ3MjkwOTJmODQxMiIsImNsaWVudF9pZCI6IjI4MzU4ODE0LTVjMjAtNGMxMy1iYmZmLWRiNWRkOGM0YWU5MyIsImVudF9hcHBfbmFhbSI6Ik5hYW0gYWZuZW1lciIsImVudF9hcHBfb3JnY29kZSI6IjEyMzQ1Njc4OSIsImV4cCI6MTU5MjIwODA2MCwiaWF0IjoxNTkyMjA4MDAwLCJpc3MiOiJodHRwczovL2F1dGhlbnRpY2F0aWUudmxhYW5kZXJlbi5iZS9vcCIsInNjb3BlIjoiQXBwUmVhZCIsInN1YiI6IjI4MzU4ODE0LTVjMjAtNGMxMy1iYmZmLWRiNWRkOGM0YWU5MyIsInRva2VuX3R5cGUiOiJiZWFyZXIifQ.lBhXPrSWfb4Bh6PaQFTndvjLuxi8svRU5DimF0zQDlh19ZdMr_gcMobmxfdp-mTFTK6-lp0NrYILV_RW54mD8bOsMTPC7SfE9oEXeMenH7E9HylRfLnBe8ByQxXuHmRBu16ODQBDg8LrlcJTh46hjzMEnI5_OmwA0Az8epRSz30gamOtB1FohYhksyrvbu_nAIVKeOHf6WvfNMcGUhFvWPFwdrjvvSeWA7wcb6eRdH72xm3d0Hg-z4DWDgFzP6s0fc3gyhtd_1-giKMpuHfRx9Z9-jpLxfcdRh7WFsNclLO1EiPI18J_LiLtGzRf62S3M2-sUQTN0tmpnhMbH7lFWiRLkf3-4QvyB-BbvBho54zAcOYkQPzpKDlth68GVSQSvbcwEsjb4R4lKP8FsuuU48SB0pnZ-TXwhn5tI4Xks0WLi0aSGYoRO-cCn5VJU_SVEH3SKJKu_y-11ybKBhBgwWB-LC4WOcTLGbT03Foc2IMXB2Ujm0w62Vmv6k4X9RHdeXX3KpC0ZWHaTu0hHkus5g7xVPNi_eKXLSyeXDM3jPeN1oAglCv33dqLTVOh7kYHkdrMsY02NTTvvFP7pX3nS7LsgVpVhN8yUHPCy7R0FAmpazkoDjJYo_IdtWnT4lb9hUMZ1hLnsgMOB9R6h8dt7GdJ7vuWgM6CXImgPeTV9eU",
"scope": "org_app_read",
"sub": "28358814-5c20-4c13-bbff-db5dd8c4ae93",
"token_type": "bearer"
}
Zodra de API Resource de bevestiging krijgt dat dit een geldig API Access Token is, dan kan die verder met de verwerking van de info uit deze JSON: in “scope” staan bijvoorbeeld de scopes vermeld die aangevraagd werden EN waarvoor deze gebruiker effectief geautoriseerd is.
Claims met info over de afnemer toepassing
Bij de intake van de API Resource kan er op voorhand vastgelegd worden welke claims voor deze API uitgeleverd worden: deze claims worden dan toegevoegd aan dit antwoord dat afkomstig is van het introspection endpoint.
Voorbeeld:
In bovenstaand voorbeeld werd bepaald dat de orgcode, orgnaam en naam van de afnemer toepassing (in claims vo_orgcode,vo_orgnaam en vo_applicatienaam): deze info werd bij intake gelinkt aan de Client en deze info is dus zichtbaar en bruikbaar door de API Resource.
De key “jwt”
In het antwoord wordt steeds de key “jwt” meegestuurd: de inhoud is een JWT-token dat getekend werd door de IDP van Toegangsbeheer: de standaard (cfr. RFC7662 paragraaf 2.2) laat het toevoegen van zulke extra velden immers toe en dit biedt een ernstige meerwaarde in bepaalde use cases (bijvoorbeeld bij het gebruik van een API gateway).
De geldigheid van deze jwt kan gevalideerd worden door de signature te chacken op basis van de gepubliceerde keys van de IDP van Toegangsbeheer (die op het Discovery Endpoint terug te vinden zijn). Dit is vooral nuttig in scenario’s waarbij er met een API gateway gewerkt wordt, waarbij de API Resource dit jwt kan valideren in plaats van nogmaals de validatie te moeten uitvoeren op het introspection endpoint. Meer details zijn terug te vinden op deze use cases met een API gateway.