Beschrijving
...
Omdat de applicaties in het koppeltaaldomein toegewezen rollen hebben, die naar permissies vertaald worden en in het scope veld het access_token worden vastgelegd als autorisatieregels, is de scope in de aanvraag voor een token voor een applicatie van weinig belang; de waarde wordt gevuld met de rol die het domein de applicatie heeft toegekend. Om deze reden is het toegestaan de waarde * te gebruiken voor het verkrijgen van alle toegestane permissies in de aangevraagde scope. Indien de applicatie om enkel een specifieke scope vraagt, mag de autorisatie service de uitgegeven scope hiermee beperken.
Relatie client_id en device reference
In koppeltaal wordt de client_id gelijk gesteld aan de logical id van de Device resource van deze applicatie. Deze identifier die in veel gevallen door de FHIR resource service wordt toegekend. Deze waarde wordt ook als identifier van het systeem https://simplifier.net/koppeltaalv2.0/koppeltaal-clientid in het Device opgeslagen. De reden voor deze aanpak is dat het op deze manier mogelijk wordt om van Device reference naar client_id te kunnen vertalen zonder toegang tot de Device resources nodig te hebben. De relatie client_id en Device is dus dat praktisch gezien de device referentie altijd Device/<client_id> is.
Toepassing, restricties en eisen
...
De aanvraag van de applicatie naar de autorisatie service gebeurt door een POST request met de volgende parameters met de application/x-www-form-urlencoded
encoding:
- scope: een lijst van scopes volgens het permissie schema of * voor alle beschikbare permissies. Om verwarring te voorkomen, er staat ook een scope in het access token.
- grant_type: altijd client_credentials
- client_assertion_type: altijd urn:ietf:params:oauth:client-assertion-type:jwt-bearer
- client_assertion: het gegenereerd JWT token van de applicatie. Deze wordt in het onderdeel JWT Profile for OAuth 2.0 Client Authentication (rfc7523) verder toegelicht.
...