Aller au contenu principal

Démarrage rapide avec curl

Ce guide vous accompagne dans l'authentification à l'API VaultPAM et dans la réalisation de votre première requête à l'aide de curl.

Prérequis :

  • curl installé (version 7.58 ou ultérieure)
  • jq installé (pour analyser les réponses JSON — facultatif mais recommandé)
  • Un compte VaultPAM avec l'accès à l'API activé

Étape 1 — Définissez votre URL de base

export VAULTPAM_BASE_URL="https://api.vaultpam.com"

Remplacez la valeur par l'URL réelle de votre control-plane VaultPAM si vous utilisez un déploiement auto-hébergé.


Étape 2 — Authentifiez-vous

# Read credentials securely — never commit tokens to source control (see auth-flow.md#token-storage)
read -p "Email: " VAULTPAM_EMAIL
read -s -p "Password: " VAULTPAM_PASSWORD
echo

RESPONSE=$(curl --silent --fail-with-body \
--url "${VAULTPAM_BASE_URL}/api/v1/auth/login" \
--header "Content-Type: application/json" \
--data "{\"email\": \"${VAULTPAM_EMAIL}\", \"password\": \"${VAULTPAM_PASSWORD}\"}")

# Extract the access token
VAULTPAM_TOKEN=$(echo "${RESPONSE}" | jq -r '.access_token')
echo "Authenticated. Token expires in $(echo "${RESPONSE}" | jq '.expires_in') seconds."
Ne validez jamais de jetons

Stockez VAULTPAM_TOKEN dans une variable d'environnement ou un gestionnaire de secrets — ne le codez jamais en dur dans des scripts. Consultez Stockage des jetons.


Étape 3 — Récupérez votre organisation active

ORG_RESPONSE=$(curl --silent --fail-with-body \
--url "${VAULTPAM_BASE_URL}/api/v1/org/memberships" \
--header "Authorization: Bearer ${VAULTPAM_TOKEN}")

VAULTPAM_ORG_ID=$(echo "${ORG_RESPONSE}" | jq -r '.active_org_id')
echo "Active org: ${VAULTPAM_ORG_ID}"

Étape 4 — Listez vos coffres-forts

curl --silent --fail-with-body \
--url "${VAULTPAM_BASE_URL}/api/v1/safes" \
--header "Authorization: Bearer ${VAULTPAM_TOKEN}" \
--header "X-Active-Org-Id: ${VAULTPAM_ORG_ID}" \
| jq '.'

Une réponse réussie renvoie un tableau JSON d'objets coffre-fort.


Gestion des erreurs

curl --fail-with-body se termine avec un code non nul en cas de réponses HTTP 4xx/5xx et affiche le corps de la réponse. Encapsulez vos appels dans des vérifications d'erreur :

if ! SAFES=$(curl --silent --fail-with-body \
--url "${VAULTPAM_BASE_URL}/api/v1/safes" \
--header "Authorization: Bearer ${VAULTPAM_TOKEN}" \
--header "X-Active-Org-Id: ${VAULTPAM_ORG_ID}"); then
echo "Request failed: ${SAFES}" >&2
exit 1
fi
echo "${SAFES}" | jq '.'

Codes de statut courants :

CodeSignification
401 UnauthorizedLe jeton est manquant, expiré ou invalide. Authentifiez-vous à nouveau.
403 ForbiddenLe jeton ne dispose pas de la portée requise pour ce point de terminaison.
429 Too Many RequestsLimite de débit dépassée. Vérifiez l'en-tête retry-after.
500 Internal Server ErrorErreur serveur transitoire. Réessayez avec un délai progressif.

Conscience des limites de débit

Vérifiez les en-têtes de la réponse pour surveiller votre budget :

curl --silent --fail-with-body --include \
--url "${VAULTPAM_BASE_URL}/api/v1/safes" \
--header "Authorization: Bearer ${VAULTPAM_TOKEN}" \
--header "X-Active-Org-Id: ${VAULTPAM_ORG_ID}" \
| grep -i "x-ratelimit"

Consultez Limites de débit pour plus de détails sur les stratégies de délai progressif.


Étapes suivantes