...
Naam | Beschrijving |
---|---|
<MBP-CLIENT-ID> | Bevat de Mijn Burgerprofiel Client-ID (zie Bijlage - Mijn Burgerprofiel Client-ID). |
<OIDC-ACCESS-TOKEN> | OpenID Connect Access Token verkregen door gebruik te maken van authorization code grant of via uitvoeren van refresh. |
<APP-CLIENT-ID> | Client-ID van de applicatie (zie Client Authenticatie voor alternatieven). |
<APP-CLIENT-SECRET> | Client Secret van de applicatie (zie Client Authenticatie voor alternatieven). |
Info |
---|
Opmerking: in ons code voorbeeld maken we gebruik van het codevoorbeeld gebruiken we een Client-ID en Secret. Echter Deze informatie kan deze informatie ook als Basic Authentication toegevoegd worden. In geval van Bij een asymmetrisch sleutelpaar dient men gebruik te maken van is client assertion nodig. Zie documentatie ook Client Authenticatie voor meer informatie en voorbeelden. |
Na het succesvol uitvoeren van de Token Exchange zal krijgt de applicatie onderstaand het onderstaande antwoord verkrijgen.:
Code Block |
---|
HTTP/1.1 200 OK Content-Type: application/json Cache-Control: no-cache, no-store { "issued_token_type":"urn:ietf:params:oauth:token-type:access_token", "access_token": "ZC5-A1AkXUzXRKb71sAIHBl9F87F18anzEaQy6G6KFD", "expires_in": 3600, "scope": "profile rrn", "token_type": "Bearer" } |
Gebruikerscontext doorgeven aan Mijn Burgerprofiel
Om gebruikercontext gebruikerscontext door te geven aan Mijn Burgerprofiel dient men moet het OAuth Access Token - verkregen via de voorgaande Token Exchange operatie door te geven- worden doorgegeven. Gezien de gevoeligheid van het OAuth Access Token dient deze steeds moet dit altijd via een server-to-server operatie te verlopen.
Swagger integration | ||
---|---|---|
| ||
{ "openapi": "3.0.2", "info": { "title": "Mijn Burgerprofiel - SSO Token", "version": "1.0" }, "components": { "schemas": { "RequestToken": { "type": "object", "required": [ "token", "token_type" ], "properties": { "token": { "type": "string", "description": "Token ontvangen via IdP Token Exchange" }, "token_type": { "type": "string", "description": "Type token ontvangen via IdP Token Exchange", "enum": [ "urn:ietf:params:oauth:token-type:access_token" ] } } }, "ResponseTempToken": { "type": "object", "required": [ "token" ], "properties": { "token": { "type": "string", "description": "Tijdelijk SSO Token" } } }, "ClientError": { "type": "object", "required": [ "error" ], "properties": { "error": { "type": "string", "description": "Foutmelding" } } }, "ServerError": { "type": "string" } } }, "servers": [ { "description": "TNI", "url": "https://burgerprofiel.tni-vlaanderen.be" }, { "description": "Productie", "url": "https://www.burgerprofiel.be" } ], "paths": { "/auth/v1/token": { "post": { "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestToken" } }, "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/RequestToken" } } } }, "responses": { "200": { "description": "Vraagstelling is geaccepteerd en een tijdelijk token werd gegenereerd", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponseTempToken" } } } }, "400": { "description": "Vraagstelling ontbreekt verplichte velden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientError" } } } }, "401": { "description": "Ongeldig of vervallen token in de vraagstelling", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientError" } } } }, "500": { "description": "Onverwacht probleem opgetreden in de applicatie bij het verwerken van het token", "content": { "text/html": { "schema": { "$ref": "#/components/schemas/ServerError" } } } } } } } } } |
Info |
---|
Opmerking: het tijdelijk token dat men verkrijgt via de API-endpoint kan slecht eenmalig maar één keer gebruikt worden. Daarnaast heeft deze ook een heel korte levensduur (ca 2 min) voordat het vervalt. |
Bovendien vervalt het na ongeveer 2 min. |
Tot slot moet het tijdelijk token worden doorgegeven als query parameters van de Mijn Burgerprofiel-URL. Onderstaand alvast enkele Een aantal voorbeelden van zo een URLsdit type URL's:
TNI:
https://burgerprofiel.tni-vlaanderen.be/?token=<MBP-TEMP-TOKEN>
https://burgerprofiel.tni-vlaanderen.be/meldingen?token=<MBP-TEMP-TOKEN>
Productie:
https://www.burgerprofiel.be/?token=<MBP-TEMP-TOKEN>
https://www.burgerprofiel.be/meldingen?token=<MBP-TEMP-TOKEN>
...