Utiliser acurl

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

L'utilitaire acurl(1) fournit un wrapper pratique pour 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 en obtenir un nouveau.
  • Il transmet ce jeton dans l'en-tête Authorization de la requête API.

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

Si vous utilisez OAuth2 pour accéder à l'API Edge, mais 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. L'un des moyens d'obtenir un jeton d'accès consiste à utiliser l'utilitaire 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 nom d'utilisateur/mot de passe ou un code secret sont requis. Votre nom d'utilisateur Apigee, qui correspond généralement à l'adresse e-mail associée à votre compte Apigee. Vous devez communiquer votre nom d'utilisateur ou un code secret la première fois que vous appelez get_token. Vous n'aurez pas besoin de transmettre à nouveau 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 nom d'utilisateur/mot de passe ou un code secret sont requis. 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 tous les appels suivants 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 au lieu du mot de passe.
MFACODE Optional Code temporaire d'authentification multifacteur (MFA) à six chiffres. Ce code est obligatoire si vous utilisez -u et que la MFA est activée. En cas d'omission, un message s'affichera (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 nom d'utilisateur/mot de passe ou un code secret sont requis. Un code secret à usage unique que vous pouvez utiliser à la place d'un mot de passe. Un code secret est requis pour l'authentification auprès d'un IdP SAML. Il peut être utilisé pour l'authentification auprès d'un IdP 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 options curl. Par exemple, vous pouvez transmettre des en-têtes, spécifier le verbe HTTP, ajouter un corps et activer la verbosité à l'aide des options curl standards:

Option acurl meaning curl meaning
-u username username
-m MFA code max time (doit utiliser la forme longue --max-time)
-p passcode proxy tunnel (doit utiliser la forme longue --proxytunnel)
-v verbose verbose
-h help help (doit utiliser la forme longue --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 les 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 à passer des appels sans saisir d'identifiants (mot de passe et MFA facultatif, ou code secret) jusqu'à ce que le jeton d'accès et le jeton d'actualisation expirent, 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 évite d'avoir à 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'utilitaire acurl encodera vos identifiants et vous demandera occasionnellement 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 de la machine. Pour en savoir plus, consultez les pages OAuth2 pour les utilisateurs machine et Utilisateurs de la machine 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 premier appel avec acurl pour obtenir des informations sur une organisation à l'aide du point de terminaison Obtenir l'organisation:

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 du 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 arrivé à expiration, acurl utilise automatiquement le jeton d'actualisation pour obtenir un nouveau jeton d'accès. Lorsque le jeton d'actualisation expire, acurl vous invite à saisir vos identifiants Apigee.

Cette requête permet d'obtenir 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 disponible en tant que "Logiciel" dans le cadre du contrat régissant votre utilisation de Google Cloud Platform, y compris les Conditions d'utilisation spécifiques du service disponibles à l'adresse https://cloud.google.com/terms/service-terms.