Utiliser acurl

Vous consultez la documentation Apigee Edge.
Accédez à la documentation**Apigee X**.
info

L'utilitaire acurl(1) fournit un wrapper pratique autour d'une commande curl standard. acurl:

  • Échange vos identifiants Apigee contre un jeton d'accès OAuth2.
  • Détecte l'expiration d'un jeton d'accès et utilise le jeton d'actualisation pour obtenir un nouveau jeton d'accès.
  • Transmet ce jeton dans l'en-tête Authorization de la requête API.

Vous utilisez des jetons d'accès pour appeler des points de terminaison de l'API Edge avec OAuth2, y compris les workflows LDAP et SAML.

Si vous utilisez OAuth2 pour accéder à l'API Edge, mais que vous n'utilisez pas acurl, vous devez obtenir un jeton d'accès et l'ajouter vous-même à l'en-tête de la requête API. Vous pouvez obtenir un jeton d'accès à l'aide de l'get_token.

Installer acurl

Avant de pouvoir utiliser acurl, vous devez l'installer.

Syntaxe acurl

L'utilitaire acurl utilise la syntaxe suivante :

acurl API_URL -u USERNAME:PASSWORD [-m MFACODE]

ou

acurl API_URL -p PASSCODE

Où :

Option Obligatoire ? Description
API_URL Obligatoire Point de terminaison de l'API Apigee Edge. Pour obtenir la liste complète des points de terminaison, consultez la documentation de référence de l'API Apigee Edge.
USERNAME Facultatif. Une combinaison de nom d'utilisateur et de mot de passe ou un code secret est obligatoire. Votre nom d'utilisateur Apigee, qui correspond généralement à l'adresse e-mail associée à votre compte Apigee. Vous devez transmettre votre nom d'utilisateur ou un code secret la première fois que vous appelez get_token. Vous n'aurez plus besoin de transmettre votre adresse e-mail tant que les jetons d'accès et d'actualisation n'auront pas expiré. Si vous mettez en cache des jetons pour plusieurs utilisateurs, vous devez spécifier votre nom d'utilisateur dans chaque appel.
PASSWORD Facultatif. Une combinaison de nom d'utilisateur et de mot de passe ou un code secret est obligatoire. Mot de passe de votre compte Apigee. Si vous omettez le mot de passe, vous serez invité à le saisir la première fois que vous utiliserez acurl et lors de tout appel ultérieur sans jeton d'actualisation valide. Si vous ne souhaitez pas utiliser votre mot de passe directement dans la commande, vous pouvez utiliser un code secret à usage unique à la place.
MFACODE Facultatif Code d'authentification multifacteur (MFA) temporaire à six chiffres. Ce code est obligatoire si vous utilisez -u et que la MFA est activée. Vous serez invité à le saisir si vous l'omettez (sauf en mode code secret). Si la MFA n'est pas activée ou si vous disposez d'un flux scripté, vous pouvez spécifier -m "" pour éviter les invites.
PASSCODE Facultatif. Une combinaison de nom d'utilisateur et de mot de passe ou un code secret est obligatoire. Code secret à usage unique que vous pouvez utiliser à la place d'un mot de passe. Un code secret est obligatoire lors de l'authentification auprès d'un fournisseur d'identité SAML et peut être utilisé pour l'authentification auprès d'un fournisseur d'identité LDAP.

Exemple :

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com -p 424242
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com:mypassw0rd
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com:mypassw0rd -m 123456

En plus des options présentées ci-dessus, acurl accepte toutes les curl options. Par exemple, vous pouvez transmettre des en-têtes, spécifier le verbe HTTP, ajouter un corps et activer le mode verbeux à l'aide des options curl standards :

Option acurl meaning curl meaning
-u username username
-m MFA code max time (must use long form --max-time)
-p passcode proxy tunnel (must use long form --proxytunnel)
-v verbose verbose
-h help help (must use long form --help)
acurl -v -X POST -H 'Content-Type: application/json' \
    https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval/apiproducts/myproduct/attributes/attr \
    -u ahamilton@apigee.com -d '{"value":42}'

Un appel acurl réussi renvoie des résultats en fonction du point de terminaison de l'API Edge que vous avez appelé. De plus, acurl stocke les jetons d'accès et d'actualisation dans ~/.sso-cli.

Vous pouvez continuer à effectuer des appels sans saisir d'identifiants (mot de passe et MFA facultative, ou code secret) jusqu'à l'expiration du jeton d'accès et du jeton d'actualisation, comme décrit dans la section Expiration des jetons.

Migrer depuis curl

Si vous utilisez curl, la migration vers l'utilitaire acurl est simple et élimine le besoin d'encoder manuellement les identifiants. Une fois que vous avez téléchargé et installé l'utilitaire, vous pouvez remplacer :

curl -u username
par :
acurl -u username

L'acurl utilitaire encodera vos identifiants et vous demandera parfois les identifiants supplémentaires requis pour obtenir de nouvelles paires de jetons.

L'utilitaire acurl peut également être utilisé pour remplacer curl pour les utilisateurs automates. Pour en savoir plus, consultez les sections OAuth2 pour les utilisateurs automates et Utilisateurs automates dans les zones SAML.

Appeler acurl pour la première fois

La première fois que vous appelez l'API avec acurl, vous fournissez vos identifiants Apigee (le nom d'utilisateur et le mot de passe de votre compte Apigee, ou un code secret) afin que acurl puisse les échanger contre un jeton d'accès et un jeton d'actualisation.

L'exemple suivant montre un appel initial avec acurl pour obtenir des informations sur une organisation à l'aide du point de terminaison Get organization :

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -u ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com':
[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:
1a2b3c
{
  "createdAt" : 1491854501264,
  "createdBy" : "noreply_iops@apigee.com",
  "displayName" : "ahamilton",
  "environments" : [ "prod", "test" ],
  "lastModifiedAt" : 1491854501264,
  "lastModifiedBy" : "noreply_iops@apigee.com",
  "name" : "ahamilton",
  "properties" : {
    "property" : [ {
      "name" : "features.isSmbOrganization",
      "value" : "false"
    }, {
      "name" : "features.isCpsEnabled",
      "value" : "true"
    } ]
  },
  "type" : "trial"
}

L'utilitaire acurl obtient un jeton d'accès et l'insère dans l'appel au point de terminaison de l'API Edge :

curl -H "Authorization: Bearer oauth2_access_token" ...

Le jeton d'accès est stocké localement dans ~/.sso-cli et utilisé pour les appels suivants.

Une fois le jeton d'accès expiré, acurl utilise automatiquement le jeton d'actualisation pour obtenir un nouveau jeton d'accès. Lorsque le jeton d'actualisation expire, acurl vous demande vos identifiants Apigee.

Cette requête obtient des informations sur l'organisation "ahamilton-eval". Pour obtenir la liste complète des points de terminaison de l'API Edge, consultez la documentation de référence de l'API Apigee Edge.


(1) Copyright 2023 Google LLC
L'outil acurl est mis à disposition en tant que "Logiciel" en vertu du contrat régissant votre utilisation de Google Cloud Platform, y compris les Conditions spécifiques au service disponibles sur https://cloud.google.com/terms/service-terms.