Types de méthodes d'authentification
Ce guide détaille les types de méthodes d'authentification disponibles.
Quand un flux sollicite une API ou une application tierce avec authentification, vous pouvez utiliser la fonctionnalité de méthode d'authentification :
- Paramétrez à un seul endroit les accès
- Améliorez la performance de vos flux : avec une date d'expiration, Ecosystem garde l'accès en mémoire et évite de régénérer un token à chaque exécution
Pour les URLs, endpoints ou paramètres configurables, privilégiez les variables de dictionnaire : format {{dictionaries.nomDuDico.cleDuDico}}. Les valeurs sont alors dynamisées selon l'environnement. Voir le module Dictionnaires.
Basic Auth
Stocke un nom d'utilisateur et un mot de passe. Ecosystem ajoute automatiquement le header Authorization: Basic xxx.
- Username : Nom d'utilisateur
- Password : Mot de passe
OAuth 2
Stocke les informations OAuth 2. Ecosystem gère l'obtention et le rafraîchissement du token.
- Client ID : ID client OAuth
- Client Secret : Secret client
- Token URL : URL pour obtenir le token
- Scope : Scopes OAuth (optionnel)
Custom
Utilisez un code personnalisé pour gérer un token et une date d'expiration. Cette option est utile lorsque votre serveur d'authentification n'utilise pas un des standards supportés par Ecosystem.
Où ajouter le jeton sur la requête ?
Vous devez choisir où placer le jeton d'authentification sur la requête :
- Header : nom du header (ex.
Authorization) et valeur (ex.Bearer {{accessToken}}) - Params : nom du paramètre (ex.
api_key) et valeur - Cookie : nom du cookie et valeur
Selon le choix, renseignez le nom (header, paramètre ou cookie) et la valeur (souvent Bearer {{accessToken}} pour un header).
Format de la réponse
Le code doit renvoyer un objet contenant les champs accessToken et expiresIn :
- accessToken : le jeton d'authentification qui sera utilisé lors de la requête
- expiresIn : le temps de validité du jeton en secondes
Exemple de réponse attendue :
{
"accessToken": "__token_value__",
"expiresIn": 300
}
Exemple de code
Ce code peut utiliser toutes les fonctionnalités disponibles dans un nœud Code (dictionnaires, libs.axios, etc.).
// Générer le Basic Auth à partir des dictionnaires
const basicHeader = Buffer.from(`${dictionaries.oauth.clientId}:${dictionaries.oauth.clientSecret}`).toString('base64');
// Appeler l'endpoint token pour obtenir access_token
const { data: response } = await libs.axios.post('https://auth.api.com/oauth/token', {
grant_type: 'client_credentials'
}, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: `Basic ${basicHeader}`
}
});
// Retourner le token et la date d'expiration
return {
accessToken: response.access_token,
expiresIn: response.expires_in // En secondes
};