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
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