Terug naar API-ontwikkeling

API-ontwikkeling

API-beveiliging

Wie uw API mag aanroepen en wat die mag doen, afgedwongen bij elke request

OAuth 2.0 client credentials, stap voor stap

Order sync job
Microsoft Entra ID
Orders API

Over de lijn

POST /{tenant}/oauth2/v2.0/token
grant_type=client_credentials
client_id=6f1c…e2a9
scope=api://orders/.default
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6…

Gedecodeerd access token

  • iss•••••
  • aud•••••
  • exp•••••
  • roles•••••
  • azp•••••

Illustratief voorbeeld

Een achtergrondtaak bewijst bij Microsoft Entra ID wie ze is, krijgt een kortlevend token en de API controleert dat voor er data terugkomt. Er gaan geen wachtwoorden naar de API.

Authenticatiemechanismen

OAuth 2.0 & OpenID Connect

Industriestandaarden voor autorisatie en authenticatie. Meer over het Microsoft Identity Platform.

  • Authorization code flow: Voor webapplicaties met backend
  • Client credentials flow: Voor communicatie tussen machines
  • PKCE: Extra beveiliging voor mobiele apps en SPA's
  • JWT-tokens: Stateless authenticatie met claims

API-sleutels

Eenvoudige authenticatie voor server-naar-serverscenario's:

  • Stuur de API-sleutel mee in een header: X-API-Key: your-key-here
  • Bewaar sleutels veilig in Azure Key Vault
  • Voer sleutelrotatie en een vervalbeleid in
  • Gebruik aparte sleutels voor dev, staging en productie

Managed identities

Authenticatie via Microsoft Entra ID zonder credentials in de code:

  • Systeemtoegewezen identiteiten voor Azure-resources
  • Door de gebruiker toegewezen identiteiten voor gedeelde resources
  • Tokens worden automatisch opgehaald en vernieuwd
  • Werkt met Azure SQL, Storage, Key Vault en meer

Autorisatiepatronen

Op rollen gebaseerd toegangsbeheer (RBAC)

Ken rechten toe op basis van gebruikersrollen:

  • Definieer rollen: Admin, Manager, User, ReadOnly
  • Decoreer endpoints met [Authorize(Roles = "Admin")]
  • Bewaar rollen in JWT-claims of in de database
  • Ondersteun meerdere rollen per gebruiker

Autorisatie op basis van claims

Fijnmazige autorisatie op basis van gebruikersattributen:

  • Controleer specifieke claims: afdeling, locatie, leeftijd
  • Autorisatie op basis van policy's met eigen vereisten
  • Combineer meerdere claims voor complexe regels

Best practices voor beveiliging

Essentiële beveiligingsmaatregelen

  • Alleen HTTPS: Dwing TLS 1.2+ af voor al het API-verkeer
  • Invoervalidatie: Valideer en schoon alle gebruikersinvoer op
  • Rate limiting: Voorkom misbruik met throttling-policy's
  • CORS: Configureer Cross-Origin Resource Sharing correct
  • Bescherming tegen SQL-injectie: Gebruik geparameteriseerde queries
  • Bescherming tegen XSS: Encodeer de output, schoon de input op
  • Beheer van secrets: Zet nooit credentials hard in de code
  • Beveiligingsheaders: X-Frame-Options, CSP, HSTS

Klaar voor betrouwbare, goed gedocumenteerde API's?

Laten we bespreken hoe we uw digitale ecosysteem kunnen versterken met veilige, schaalbare en ontwikkelaarsvriendelijke API's.