OAuth 2.0 client identifiants, étape par étape
Order sync job
Microsoft Entra ID
Orders API
Sur le réseau
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…Jeton d'accès décodé
- iss•••••
- aud•••••
- exp•••••
- roles•••••
- azp•••••
Exemple illustratif
Mécanismes d'authentification
OAuth 2.0 et OpenID Connect
Protocoles standard de l'industrie pour l'autorisation et l'authentification. En savoir plus sur Microsoft Identity Platform.
- Flow Authorization Code : Pour applications web avec backend
- Flow Client Identifiants : Pour communication machine-à-machine
- PKCE : Sécurité améliorée pour applications mobiles et SPA
- Tokens JWT : Authentification sans état avec claims
Clés API
Authentification simple pour scénarios serveur-à-serveur :
- Envoyer clé API dans l'en-tête :
X-API-Key: your-key-here - Stocker les clés de manière sécurisée dans Azure Key Vault
- Mettre en œuvre rotation et politiques d'expiration des clés
- Utiliser des clés différentes pour dev, staging, production
Identités managées
Authentification Microsoft Entra ID sans identifiants dans le code :
- Identités assignées au système pour les ressources Azure
- Identités assignées par l'utilisateur pour ressources partagées
- Acquisition et renouvellement automatiques des tokens
- Fonctionne avec Azure SQL, Storage, Key Vault et plus
Modèles d'autorisation
Contrôle d'accès basé sur les rôles (RBAC)
Assigner des permissions basées sur les rôles utilisateur :
- Définir les rôles : Admin, Manager, User, ReadOnly
- Décorer les endpoints avec
[Authorize(Roles = "Admin")] - Stocker les rôles dans les claims JWT ou base de données
- Prise en charge de plusieurs rôles par utilisateur
Autorisation basée sur les claims
Autorisation fine basée sur les attributs utilisateur :
- Vérifier claims spécifiques : département, localisation, âge
- Autorisation basée sur politiques avec exigences personnalisées
- Combiner plusieurs claims pour règles complexes
Bonnes pratiques de sécurité
Mesures de sécurité essentielles
- HTTPS uniquement : Imposer TLS 1.2+ pour tout le trafic API
- Validation d'entrée : Valider et assainir toutes les entrées utilisateur
- Limitation de débit : Prévenir les abus avec politiques de throttling
- CORS : Configurer correctement le cross-origin resource sharing
- Prévention injection SQL : Utiliser des requêtes paramétrées
- Protection XSS : Encoder la sortie, assainir l'entrée
- Gestion des secrets : Ne jamais coder en dur les identifiants
- En-têtes de sécurité : X-Frame-Options, CSP, HSTS