Apigee fournit les utilitaires get_token et acurl pour simplifier l'interaction avec Apigee SSO et l'API de gestion Edge. Ces outils gèrent automatiquement la génération, la mise en cache, l'actualisation et l'injection des jetons.
Les utilitaires sont installés sur le nœud OpenLDAP à l'adresse /opt/apigee/apigee-openldap/bin/.
L'utilitaire get_token
L'utilitaire get_token est chargé d'acquérir des jetons d'accès et d'actualisation OIDC/OAuth2. Il est compatible avec deux flux d'authentification principaux et inclut la mise en cache intégrée des jetons.
Flux d'authentification
- Flux de code d'appareil (RFC 8628) : conçu pour les utilisateurs humains qui s'authentifient via un fournisseur d'identité externe (tel que SAML, Okta ou OIDC). Si vous ne transmettez qu'une adresse e-mail (
-u <email>), l'utilitaire lance ce flux, vous invitant à approuver une URL et un code dans un navigateur. - Attribution de mot de passe (ROPC) : conçu pour les utilisateurs de machines sans interface graphique et les scripts automatisés. Si vous transmettez à la fois un nom d'utilisateur et un mot de passe (
-u <user>:<password>), l'authentification est effectuée directement auprès d'Apigee SSO sans interaction avec le navigateur.
Mise en cache et actualisation automatique des jetons
L'utilitaire get_token gère automatiquement les cycles de vie des jetons. Vous n'avez donc pas besoin de suivre manuellement les délais d'expiration :
- Vérification du cache : lorsqu'il est appelé,
get_tokenvérifie le cache local à l'adresse~/.sso-cli/<username>-token.json. Si un jeton valide existe et n'a pas expiré, il le réutilise sans se réauthentifier. - Actualisation automatique : si le jeton d'accès mis en cache a expiré, mais qu'un jeton d'actualisation valide existe, l'utilitaire échange automatiquement le jeton d'actualisation auprès d'Apigee SSO contre un nouveau jeton d'accès.
Variables d'environnement
Vous pouvez éventuellement personnaliser le comportement de get_token à l'aide des variables d'environnement suivantes :
SSO_LOGIN_URL: URL Apigee SSO (par défaut :http://localhost:9099).CLIENT_ID: ID client OAuth2 (par défaut :edgecli).CLIENT_SECRET: code secret du client OAuth2 (par défaut :edgeclisecret).
L'utilitaire acurl
L'utilitaire acurl est un wrapper transparent pour curl standard. Il s'assure que chaque requête API inclut un jeton porteur valide.
- Séparation des arguments : l'utilitaire extrait l'argument
-u <user:password>ou-u <user>et le transmet àget_token. Il transfère tous les autres arguments (tels que-X,-H,-d,-v,-s) directement àcurlstandard. - Exécution : après avoir acquis ou récupéré un jeton valide à partir de
get_token,acurlinjecte automatiquement l'en-tête-H "Authorization: Bearer <token>"dans l'appelcurl.
Exemples d'utilisation
Exemple 1 : Connexion interactive pour un utilisateur humain
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
Cette commande met en pause l'opération, invite l'utilisateur à accéder à un navigateur pour s'authentifier via son fournisseur d'identité externe, puis exécute l'appel d'API une fois l'approbation effectuée.
Exemple 2 : Connexion sans interface graphique pour un utilisateur de machine
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
Cette commande s'authentifie directement via l'attribution de mot de passe et exécute immédiatement l'appel d'API.
Exemple 3 : Réutilisation d'un jeton mis en cache
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
Étant donné que le jeton a été mis en cache lors des étapes précédentes, vous n'avez pas besoin de fournir à nouveau l'argument -u. L'utilitaire lit le jeton mis en cache et l'injecte automatiquement.