Ontwikkel een API-documentatie met beveiligingsrichtlijnen in Swagger of Redoc
description
Met deze prompt kun je een heldere en praktische beveiligingssectie aan je API-documentatie toevoegen. Dit helpt ontwikkelaars om veilig met je API te werken, voorkomt veelvoorkomende beveiligingsproblemen en verhoogt het vertrouwen in je API. Het is gericht op praktische beveiligingsrichtlijnen en voorbeelden, waardoor het beter is dan algemene documentaties die beveiliging slechts oppervlakkig behandelen.
prompt
Help me met het toevoegen van een uitgebreide sectie over beveiligingsrichtlijnen in mijn REST API-documentatie met behulp van <kies Swagger of Redoc>. API-naam: <voer de naam van mijn API in>. Beschrijf de gebruikte authenticatie- en autorisatiemethoden: <bes ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een uitgebreide sectie over beveiligingsrichtlijnen voor jouw REST API-documentatie "BetaalAPI" met Swagger, inclusief beschrijvingen van de gebruikte authenticatie- en autorisatiemethoden, voorbeelden en best practices.
---
## Beveiligingsrichtlijnen
### Overzicht
De BetaalAPI is ontworpen met beveiliging in het achterhoofd om de integriteit en vertrouwelijkheid van betaalgegevens te waarborgen. Toegang tot de API wordt beveiligd via OAuth 2.0 met Bearer tokens en JWT voor sessiebeheer. Hieronder vindt u gedetailleerde instructies over het veilig gebruiken van de API, inclusief voorbeelden, best practices en valkuilen.
---
### Authenticatie en Autorisatie
#### OAuth 2.0 met Bearer tokens
De API vereist dat elke aanvraag wordt voorzien van een geldig Bearer token in de Authorization-header:
```http
Authorization: Bearer {access_token}
```
#### JWT voor sessiebeheer
Bij succesvolle authenticatie ontvangt u een JWT (JSON Web Token), dat wordt gebruikt voor toekomstige verzoeken. Dit token bevat claims over de gebruiker en sessie, en wordt ondertekend om authenticiteit te garanderen.
---
### Hoe werkt het?
1. **Aanmelden / Authenticatie**
Ontwikkelaars moeten zich eerst authenticeren via het OAuth 2.0 autorisatieproces om een access token te verkrijgen.
2. **Gebruik van tokens**
Gebruik het verkregen access token in de Authorization-header bij elke API-aanroep.
3. **Token vervaltijd**
Tokens hebben een beperkte geldigheid. Verleng of vernieuw tokens tijdig om onderbrekingen te voorkomen.
---
### Voorbeelden
#### Authenticatie-header voorbeeld
```http
GET /betalingen HTTP/1.1
Host: api.betaalvoorbeeld.nl
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
```
#### JWT-voorbeeld (de code wordt niet gedeeld voor veiligheid, maar geeft het idee)
```json
{
"sub": "gebruiker123",
"iat": 1616161616,
"exp": 1616165216,
"role": "klant"
}
```
---
### Best practices voor veilig gebruik
- **Behandel tokens als vertrouwelijke informatie**
Bewaar tokens veilig en sla ze niet op in onveilige opslag zoals lokale opslag of logs.
- **Gebruik HTTPS**
Alle API-verzoeken moeten via HTTPS worden uitgevoerd om te voorkomen dat tokens worden onderschept.
- **Verleen minimale toegangsrechten**
Gebruik de minste privileges die nodig zijn voor de taak (principle of least privilege).
- **Vernieuw tokens tijdig**
Implementeer refresh tokens waar nodig en vraag gebruikers om opnieuw in te loggen bij verval.
- **Controleer tokens op validiteit**
De API controleert automatisch de geldigheid en handtekening van JWT's.
---
### Valkuilen en waarschuwingen
- **Gebruik geen tokens in URL-parameters**
Plaats tokens altijd in headers om veiligheidsrisico's te minimaliseren.
- **Vermijd het delen van tokens**
Deel access tokens nooit via e-mail, chat of andere onveilige kanalen.
- **Houd JWT-secret veilig**
De ondertekeningssleutel moet geheim blijven en niet worden gedeeld.
- **Let op token vervaltijd**
Gebruik refresh tokens om sessies veilig te verlengen en te voorkomen dat tokens te lang geldig blijven.
---
### Samenvatting
Door het gebruik van OAuth 2.0 met Bearer tokens en JWT voor sessiebeheer biedt de BetaalAPI een robuuste beveiligingslaag. Volg de bovenstaande richtlijnen en best practices om de integriteit en veiligheid van je betalingen te waarborgen.
---
Ik kan deze sectie toevoegen aan je Swagger-configuratie door gebruik te maken van de `securityDefinitions` en `security` parameters in OpenAPI-specificatie. Wil je dat ik dat ook voor je opstel?
provider: deepseek
model: deepseek-chat
Zeker, hier is een uitgebreide beveiligingssectie voor je BetaalAPI Swagger-documentatie in het Nederlands:
---
## Beveiligingsrichtlijnen BetaalAPI
### Authenticatie & Autorisatie
De BetaalAPI gebruikt OAuth 2.0 framework met JWT (JSON Web Tokens) voor veilige toegangscontrole.
**Authenticatieflow:**
```yaml
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
```
**Autorisatie Header Voorbeeld:**
```http
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
```
### Beveiligingsheaders
Gebruik deze headers in alle API-verzoeken:
```http
Content-Type: application/json
Authorization: Bearer <jouw_token>
X-Request-ID: <unieke_identifier>
Cache-Control: no-store
```
### Token Beheer Best Practices
**✅ Aanbevolen:**
- Tokens maximaal 1 uur geldig houden
- Refresh tokens gebruiken voor sessieverlenging
- Tokens veilig opslaan (geen local storage)
- HTTPS voor alle communicatie
- Token intrekken bij verdachte activiteiten
**❌ Te Vermijden:**
- Tokens in logs of URLs
- Hardcoded tokens in code
- Tokens delen met derden
- Verlopen tokens hergebruiken
### JWT Specificaties
```json
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "gebruiker123",
"iss": "betaalapi.nl",
"exp": 1718901234,
"scope": ["payments:read", "payments:write"]
}
```
### Veilige Implementatie Voorbeeld
**Request:**
```http
POST /api/v1/betalingen HTTP/1.1
Host: api.betaalapi.nl
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
X-Request-ID: 550e8400-e29b-41d4-a716-446655440000
{
"bedrag": 49.99,
"valuta": "EUR",
"ontvanger": "NL91ABNA0417164300"
}
```
### Veiligheidsrisico's & Oplossingen
**Veelvoorkomende Valkuilen:**
1. **Token lekken** via error messages
- ✅ Gebruik algemene foutmeldingen
2. **Inadequate token validatie**
- ✅ Verifieer signature, issuer en expiry
3. **Onveilige token opslag**
- ✅ Gebruik httpOnly cookies of secure storage
4. **Missing rate limiting**
- ✅ Implementeer request limiting per token
### Foutafhandeling
```json
{
"error": "invalid_token",
"error_description": "Token is verlopen of ongeldig"
}
```
### Audit Logging
Alle API-aanroepen worden gelogd met:
- Timestamp
- Gebruiker ID
- Endpoint
- IP-adres
- Request ID
### Noodprocedures
Bij vermoeden van beveiligingsincident:
1. Token direct intrekken
2. Gebruiker waarschuwen
3. Nieuwe tokens uitgeven
4. Verdachte activiteiten onderzoeken
---
Deze sectie kan direct toegevoegd worden aan je Swagger/OpenAPI specificatie onder het `securitySchemes` component en de algemene beschrijving. Vergeet niet de JWT secret veilig te beheren en regelmatige security audits uit te voeren.