# info.description
Een API om een autorisatiecomponent (AC) te benaderen.

De `AUTORISATIE` is het kernobject in deze API. Autorisaties worden toegekend
aan applicaties. Een applicatie is een representatie van een (web) app die
communiceert met de API van (andere) componenten, zoals het ZRC, DRC, ZTC en
BRC.

Deze API laat toe om autorisaties van een (taak)applicatie te beheren en uit
te lezen.

**Afhankelijkheden**

Deze API is afhankelijk van:

* Notificaties API


### Autorisatie

Deze API vereist autorisatie.

_Zelf een token genereren_

De tokens die gebruikt worden voor autorisatie zijn [JWT's](https://jwt.io) (JSON web
token). In de API calls moeten deze gebruikt worden in de `Authorization`
header:

```
Authorization: Bearer <token>
```

Om een JWT te genereren heb je een `client ID` en een `secret` nodig. Het JWT
moet gebouwd worden volgens het `HS256` algoritme. De vereiste payload is:

```json
{
    "iss": "<client ID>",
    "iat": 1572863906,
    "client_id": "<client ID>",
    "user_id": "<user identifier>",
    "user_representation": "<user representation>"
}
```

Als `issuer` gebruik je dus je eigen client ID. De `iat` timestamp is een
UNIX-timestamp die aangeeft op welk moment het token gegenereerd is.

`user_id` en `user_representation` zijn nodig voor de audit trails. Het zijn
vrije velden met als enige beperking dat de lengte maximaal de lengte van
de overeenkomstige velden in de audit trail resources is (zie rest API spec).

[Link naar volledige documentatie(in het Engels)](https://open-zaak.readthedocs.io/en/stable/client-development/authentication.html) met codevoorbeelden voor Java, JavaScript, PHP, Python.


### Notificaties

Deze API publiceert notificaties op het kanaal `autorisaties`.

**Main resource**

`applicatie`



**Kenmerken**



**Resources en acties**
- `applicatie`: create, update, destroy


**Handige links**

* [API-documentatie](https://vng-realisatie.github.io/gemma-zaken/standaard/)
* [Open Zaak documentatie](https://open-zaak.readthedocs.io/en/latest/)
* [Zaakgericht werken](https://www.vngrealisatie.nl/producten/api-standaarden-zaakgericht-werken)
* [Open Zaak GitHub](https://github.com/open-zaak/open-zaak)

# paths./applicaties.get.description
De autorisaties zijn gedefinieerd op een specifieke component, bijvoorbeeld het ZRC, en geven aan welke scopes van toepassing zijn voor dit component. De waarde van de `component` bepaalt ook welke verdere informatie ingesloten is, zoals `zaaktype` en `maxVertrouwelijkheidaanduiding` voor het ZRC.

In dit voorbeeld gelden er dus zaaktype-specifieke scopes en mogen zaken van het betreffende zaaktype met een striktere vertrouwelijkheidaanduiding dan `maxVertrouwelijkheidaanduiding` niet ontsloten worden.

De collectie kan doorzocht worden met de ``clientIds`` query parameter.

# paths./applicaties.get.summary
Geef een collectie van applicaties, met ingesloten autorisaties.

# paths./applicaties.get.parameters[].description
Meerdere waarden kunnen gescheiden worden door komma's.

# paths./applicaties.get.parameters[].description
Een pagina binnen de gepagineerde set resultaten.

# paths./applicaties.get.parameters[].description
Het aantal resultaten terug te geven per pagina. (default: 100).

# paths./applicaties.get.responses.200.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.400.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.401.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.403.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.406.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.409.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.410.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.415.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.429.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.get.responses.500.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.description
Indien `heeftAlleAutorisaties` gezet is, dan moet je `autorisaties` leeg (of weg) laten.

Indien je `autorisaties` meegeeft, dan moet `heeftAlleAutorisaties` de waarde `false` hebben of weggelaten worden.

Na het aanmaken wordt een notificatie verstuurd.

# paths./applicaties.post.summary
Registreer een applicatie met een bepaalde set van autorisaties.

# paths./applicaties.post.responses.201.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.400.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.401.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.403.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.406.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.409.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.410.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.415.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.429.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties.post.responses.500.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.description
De autorisaties zijn gedefinieerd op een specifieke component, bijvoorbeeld het ZRC, en geven aan welke scopes van toepassing zijn voor dit component. De waarde van de `component` bepaalt ook welke verdere informatie ingesloten is, zoals `zaaktype` en `maxVertrouwelijkheidaanduiding` voor het ZRC.

In dit voorbeeld gelden er dus zaaktype-specifieke scopes en mogen zaken van het betreffende zaaktype met een striktere vertrouwelijkheidaanduiding dan `maxVertrouwelijkheidaanduiding` niet ontsloten worden.

# paths./applicaties/{uuid}.get.summary
Vraag een applicatie op, met ingesloten autorisaties.

# paths./applicaties/{uuid}.get.responses.200.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.401.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.403.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.404.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.406.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.409.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.410.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.415.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.429.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.get.responses.500.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.description
Indien `heeftAlleAutorisaties` gezet is, dan moet je `autorisaties` leeg (of weg) laten.

Indien je `autorisaties` meegeeft, dan moet `heeftAlleAutorisaties` de waarde `false` hebben of weggelaten worden.

Na het bijwerken wordt een notificatie verstuurd.

# paths./applicaties/{uuid}.put.responses.200.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.400.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.401.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.403.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.404.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.406.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.409.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.410.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.415.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.429.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.put.responses.500.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.description
Indien `autorisaties` meegegeven is, dan worden de bestaande `autorisaties` vervangen met de nieuwe set van `autorisaties`.

Indien `heeftAlleAutorisaties` gezet is, dan moet je `autorisaties` leeg (of weg) laten.

Indien je `autorisaties` meegeeft, dan moet `heeftAlleAutorisaties` de waarde `false` hebben of weggelaten worden.

Na het bijwerken wordt een notificatie verstuurd.

# paths./applicaties/{uuid}.patch.responses.200.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.400.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.401.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.403.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.404.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.406.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.409.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.410.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.415.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.429.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.patch.responses.500.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.description
Na het verwijderen wordt een notificatie verstuurd.

# paths./applicaties/{uuid}.delete.summary
Verwijder een applicatie met de bijhorende autorisaties.

# paths./applicaties/{uuid}.delete.responses.204.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.401.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.403.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.404.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.406.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.409.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.410.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.415.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.429.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/{uuid}.delete.responses.500.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.description
Gegeven een `clientId`, via de query string, zoek de bijbehorende applicatie op. Het antwoord bevat de applicatie met ingesloten autorisaties.

# paths./applicaties/consumer.get.summary
Vraag een applicatie op, op basis van clientId

# paths./applicaties/consumer.get.parameters[].description
Geef het client ID op waarvoor je de applicatie wil opvragen.

# paths./applicaties/consumer.get.responses.200.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.responses.401.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.responses.403.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.responses.406.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.responses.409.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.responses.410.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.responses.415.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.responses.429.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# paths./applicaties/consumer.get.responses.500.headers.API-version.description
Geeft een specifieke API-versie aan in de context van een specifieke aanroep. Voorbeeld: 1.2.1.

# components.schemas.Applicatie.properties.url.description
URL-referentie naar dit object. Dit is de unieke identificatie en locatie van dit object.

# components.schemas.Applicatie.properties.clientIds.description
Lijst van consumer identifiers (hun 'client_id'). Een `client_id` mag slechts bij één applicatie-object voorkomen.

# components.schemas.Applicatie.properties.label.description
Een leesbare representatie van de applicatie, voor eindgebruikers.

# components.schemas.Applicatie.properties.heeftAlleAutorisaties.description
Indien alle autorisaties gegeven zijn, dan hoeven deze niet individueel opgegeven te worden. Gebruik dit alleen als je de consumer helemaal vertrouwt.

# components.schemas.ApplicatieRequest.properties.clientIds.description
Lijst van consumer identifiers (hun 'client_id'). Een `client_id` mag slechts bij één applicatie-object voorkomen.

# components.schemas.ApplicatieRequest.properties.label.description
Een leesbare representatie van de applicatie, voor eindgebruikers.

# components.schemas.ApplicatieRequest.properties.heeftAlleAutorisaties.description
Indien alle autorisaties gegeven zijn, dan hoeven deze niet individueel opgegeven te worden. Gebruik dit alleen als je de consumer helemaal vertrouwt.

# components.schemas.Base_AutorisatieBaseSerializer.properties.component.description
Component waarop autorisatie van toepassing is.

Uitleg bij mogelijke waarden:

* `ac` - Autorisaties API
* `nrc` - Notificaties API
* `zrc` - Zaken API
* `ztc` - Catalogi API
* `drc` - Documenten API
* `brc` - Besluiten API
* `cmc` - Contactmomenten API
* `kc` - Klanten API
* `vrc` - Verzoeken API

# components.schemas.Base_AutorisatieBaseSerializer.properties.scopes.description
Lijst van scope labels. Elke scope geeft toegang tot een set van acties/operaties, zoals gedocumenteerd bij de betreffende component.

# components.schemas.Base_AutorisatieBaseSerializerRequest.properties.component.description
Component waarop autorisatie van toepassing is.

Uitleg bij mogelijke waarden:

* `ac` - Autorisaties API
* `nrc` - Notificaties API
* `zrc` - Zaken API
* `ztc` - Catalogi API
* `drc` - Documenten API
* `brc` - Besluiten API
* `cmc` - Contactmomenten API
* `kc` - Klanten API
* `vrc` - Verzoeken API

# components.schemas.Base_AutorisatieBaseSerializerRequest.properties.scopes.description
Lijst van scope labels. Elke scope geeft toegang tot een set van acties/operaties, zoals gedocumenteerd bij de betreffende component.

# components.schemas.FieldValidationError.properties.name.description
Naam van het veld met ongeldige gegevens

# components.schemas.FieldValidationError.properties.reason.description
Uitleg wat er precies fout is met de gegevens

# components.schemas.Fout.properties.type.description
URI referentie naar het type fout, bedoeld voor developers

# components.schemas.Fout.properties.detail.description
Extra informatie bij de fout, indien beschikbaar

# components.schemas.Fout.properties.instance.description
URI met referentie naar dit specifiek voorkomen van de fout. Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld.

# components.schemas.PatchedApplicatieRequest.properties.clientIds.description
Lijst van consumer identifiers (hun 'client_id'). Een `client_id` mag slechts bij één applicatie-object voorkomen.

# components.schemas.PatchedApplicatieRequest.properties.label.description
Een leesbare representatie van de applicatie, voor eindgebruikers.

# components.schemas.PatchedApplicatieRequest.properties.heeftAlleAutorisaties.description
Indien alle autorisaties gegeven zijn, dan hoeven deze niet individueel opgegeven te worden. Gebruik dit alleen als je de consumer helemaal vertrouwt.

# components.schemas.ValidatieFout.properties.type.description
URI referentie naar het type fout, bedoeld voor developers

# components.schemas.ValidatieFout.properties.detail.description
Extra informatie bij de fout, indien beschikbaar

# components.schemas.ValidatieFout.properties.instance.description
URI met referentie naar dit specifiek voorkomen van de fout. Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld.

# components.schemas.brcAutorisatie.properties.besluittype.description
URL naar het besluittype waarop de autorisatie van toepassing is.

# components.schemas.brcAutorisatieRequest.properties.besluittype.description
URL naar het besluittype waarop de autorisatie van toepassing is.

# components.schemas.drcAutorisatie.properties.informatieobjecttype.description
URL naar het informatieobjecttype waarop de autorisatie van toepassing is.

# components.schemas.drcAutorisatieRequest.properties.informatieobjecttype.description
URL naar het informatieobjecttype waarop de autorisatie van toepassing is.

# components.schemas.zrcAutorisatie.properties.zaaktype.description
URL naar het zaaktype waarop de autorisatie van toepassing is.

# components.schemas.zrcAutorisatieRequest.properties.zaaktype.description
URL naar het zaaktype waarop de autorisatie van toepassing is.