Authenticatie
De WIWB API gebruikt OAuth 2.0 Client Credentials flow voor authenticatie. Dit tweestapsproces zorgt voor veilige toegang tot weergegevens.
Stap 1: Verkrijg je API Inloggegevens
Eerst moet je je client inloggegevens verkrijgen:
- Bezoek onze registratiepagina
- Vul het aanvraagformulier in met je organisatiegegevens
- Ontvang je client_id en client_secret via e-mail (meestal binnen 1-2 werkdagen)
Meerdere API Sleutels
Organisaties kunnen meerdere API-sleutels aanvragen voor verschillende applicaties of omgevingen (bijv. ontwikkeling, test, productie). Elk sleutelpaar werkt onafhankelijk, waardoor je:
- Toegang kunt scheiden tussen verschillende applicaties
- Verschillende beveiligingsbeleid per sleutel kunt implementeren
- Individuele sleutels kunt intrekken zonder anderen te beïnvloeden
Voor het aanvragen van extra sleutels, dien een nieuw registratieformulier in of neem contact op met support.
⚠️ Belangrijk: Bewaar je client_secret veilig en deel deze nooit publiekelijk.
Stap 2: Wissel Inloggegevens in voor Access Token
Gebruik je client inloggegevens om een access token aan te vragen bij het authenticatie-eindpunt:
curl -X POST "https://api.wiwb.nl/auth/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Accept: application/json" \ -d "client_id=JOUW_CLIENT_ID&client_secret=JOUW_CLIENT_SECRET&grant_type=client_credentials"
Belangrijk: Speciale Tekens in client_secret
Als je client_secret speciale tekens bevat (zoals +, =, &, %, etc.), moet je deze URL-encoderen. Gebruik dan --data-urlencode:
curl -X POST "https://api.wiwb.nl/auth/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Accept: application/json" \ --data-urlencode "client_id=JOUW_CLIENT_ID" \ --data-urlencode "client_secret=JOUW_CLIENT_SECRET" \ --data-urlencode "grant_type=client_credentials"
Response
Je ontvangt een JSON response met je access token:
{ "access_token": "eyJhbGciOiJIUzI1NiIs...", "token_type": "Bearer", "expires_in": 3600 }
Stap 3: Gebruik je Access Token
Voeg het access token toe aan de Authorization header van alle API-verzoeken:
Authorization: Bearer JOUW_ACCESS_TOKEN
Let op: Het token verloopt na de tijd aangegeven in expires_in (in seconden). Je moet een nieuw token aanvragen wanneer het verloopt.
Voorbeeld API Verzoek
curl -X POST "https://api.wiwb.nl/api/entity/datasources/get" \ -H "Authorization: Bearer JOUW_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'
Token Beveiliging
Belangrijke beveiligingsoverwegingen:
- Deel je API-token nooit publiekelijk
- Sla tokens veilig op in omgevingsvariabelen
- Roteer tokens regelmatig
- Gebruik HTTPS voor alle API-verzoeken
Token Verloop
API-tokens hebben de volgende kenmerken:
- Vervaldatum: Tokens vervallen niet tenzij ingetrokken
- Intrekking: Tokens kunnen worden ingetrokken indien gecompromitteerd
Foutresponsen
Als authenticatie mislukt, ontvang je een 401 Unauthorized response:
{ "error": "Unauthorized", "message": "Invalid or missing API token", "code": 401 }
Veelvoorkomende authenticatiefouten:
- Ontbrekend token: Geen Authorization header opgegeven
- Ongeldig token: Token is misvormd of ongeldig
- Verlopen token: Token is ingetrokken of verlopen