Authentification OAuth2 - Passe Marché
Vue d'ensemble
Passe Marché utilise le protocole OAuth2 avec le flux Client Credentials pour l'authentification des plateformes de marchés publics. Cette méthode garantit une communication sécurisée et standardisée entre votre plateforme et l'API Passe Marché.
Environnements
Les exemples de ce document utilisent la variable $BASE_URL. Consultez la documentation des environnements pour les URLs spécifiques :
Staging
https://staging.passemarche.data.gouv.fr
Production
https://passemarche.data.gouv.fr
Prérequis d'Intégration
Enregistrement plateforme de marchés publics
Important : L'enregistrement d'une plateforme de marchés publics doit être effectué manuellement par un administrateur Passe Marché pour des raisons de sécurité et de contrôle d'accès.
Processus d'Enregistrement
Demande d'Intégration
Contactez l'équipe Passe Marché
Fournissez les informations de votre plateforme
Décrivez votre cas d'usage
Configuration Administrateur L'administrateur créera votre compte éditeur avec :
Nom éditeur : Identifiant unique de votre plateforme
Client ID : Identifiant OAuth2 unique
Client Secret : Clé secrète OAuth2
Statut autorisé :
authorized: trueStatut actif :
active: trueURL webhook (optionnel) : Pour recevoir les notifications
URL redirection (optionnel) : Retour après complétion
Réception des Identifiants Vous recevrez de manière sécurisée :
{ "client_id": "votre_client_id_unique", "client_secret": "votre_cle_secrete", "webhook_secret": "secret_hmac_genere" }
Spécifications OAuth2
Flux Client Credentials
Obtention du Token d'Accès
Endpoint : POST /oauth/token
En-têtes Requis :
Corps de la Requête :
Exemple cURL :
Réponse de Succès
Paramètres de Réponse :
access_token: Token JWT à utiliser pour les appels APItoken_type: Toujours "Bearer"expires_in: Durée de validité en secondes (24 heures)scope: Permissions accordées
Réponses d'Erreur
Client invalide (401) :
Éditeur non autorisé (401) :
Grant type non supporté (400) :
Utilisation du Token
En-tête d'Authentification
Incluez le token dans toutes les requêtes API :
Gestion du Cycle de Vie
Caractéristiques :
Durée de vie : 24 heures exactement
Révocation automatique : L'ancien token est révoqué lors de l'émission d'un nouveau
Renouvellement : Répétez la requête
/oauth/tokenValidation : Vérifiez
expires_inpour anticiper le renouvellement
Scopes Disponibles
api_access
Accès général à l'API
Création marchés, candidatures
api_read
Lecture seule
Consultation données
api_write
Écriture
Modification données
Note : Le scope api_access est recommandé et inclut les permissions de lecture et écriture nécessaires.
Sécurité et Bonnes Pratiques
Exigences de Sécurité
HTTPS Obligatoire : Toutes les communications doivent utiliser HTTPS
Stockage Sécurisé : Ne jamais exposer le
client_secretcôté clientVariables d'Environnement : Stocker les secrets dans des variables d'environnement
Rotation Régulière : Renouveler les tokens selon leur expiration
Gestion des Erreurs
Stratégies recommandées :
Retry automatique pour les erreurs 5xx (serveur)
Circuit breaker pour éviter les appels répétés
Logging des erreurs sans exposer les secrets
Validation de l'expiration avant utilisation
🔗 Scripts avec retry : Scripts de Référence - Authentification avec retry
Validation du Token
Bonnes pratiques :
Vérifier l'expiration avec buffer de 5 minutes
Renouveler automatiquement si nécessaire
Stocker avec timestamp d'émission
Éviter les appels redondants
🔗 Scripts de validation : Scripts de Référence - Validation de token
Exemples d'Implémentation
Obtention et utilisation basique
🔗 Scripts avancés :
Monitoring et Débogage
Logs Recommandés
Éléments à logger :
Demandes de token (timestamp, client_id)
Réussites d'authentification (durée, expiration)
Échecs d'authentification (code HTTP, raison)
Important : Ne jamais logger les secrets
Métriques Importantes
Taux de succès des authentifications
Temps de réponse du endpoint OAuth
Fréquence de renouvellement des tokens
Erreurs d'authentification par type
🔗 Scripts de logging : Scripts de Référence - Logging et monitoring
Codes d'Erreur Détaillés
400
invalid_request
Paramètres manquants
Vérifier le format de la requête
400
unsupported_grant_type
Grant type incorrect
Utiliser client_credentials
401
invalid_client
Credentials invalides
Vérifier client_id/secret
401
invalid_client
Éditeur non autorisé
Contacter l'administration
429
rate_limit_exceeded
Trop de requêtes
Implémenter un délai
500
server_error
Erreur serveur
Réessayer plus tard
Cette spécification OAuth2 garantit une intégration sécurisée et standardisée avec l'API Passe Marché.
Mis à jour
Ce contenu vous a-t-il été utile ?

