Utiliser les utilitaires et les API d'administration Edge après avoir activé Apigee SSO

Cette section explique comment exécuter les outils et commandes d'administration système Edge après avoir activé l'authentification unique Apigee. De nombreuses tâches sur Edge nécessitent des identifiants d'administration système, par exemple :

  • Créer des organisations et des environnements
  • Ajouter et supprimer des composants Edge
  • Exécuter des commandes apigee-adminapi.sh

Toutefois, une fois que vous avez activé l'authentification unique sur Edge, vous désactivez généralement l'authentification de base afin que la seule façon de s'authentifier soit via le fournisseur d'identité OIDC/SAML. Par conséquent, vous devez vous assurer d'avoir ajouté le compte d'administrateur système à votre fournisseur d'identité ou d'avoir créé un utilisateur machine local pour l'automatisation.

Appeler les API de gestion Edge en tant qu' administrateur système

De nombreux appels d'API Edge nécessitent que vous transmettiez des identifiants d'administrateur système. La section Utiliser SAML avec l'API de gestion Edge contient des instructions sur la manière d'obtenir et d'actualiser des jetons à l'aide de l'utilitaire get_token lorsque vous effectuez des appels d'API de gestion Edge.

Utiliser l'utilitaire apigee-adminapi.sh avec l'authentification unique Apigee

Utilisez l'utilitaire apigee-adminapi.sh pour effectuer les mêmes tâches de configuration Edge que celles que vous effectuez en appelant l'API de gestion Edge. L'avantage de l' apigee-adminapi.sh utilitaire est qu'il :

  • utilise une interface de ligne de commande simple ;
  • implémente la saisie semi-automatique des commandes basée sur les onglets ;
  • fournit de l'aide et des informations sur l'utilisation ;
  • peut afficher l'appel d'API correspondant si vous décidez d'essayer l'API.

Une fois que vous avez activé l'authentification unique Apigee, vous disposez de deux méthodes principales pour transmettre des identifiants à l'utilitaire apigee-adminapi.sh, selon que vous êtes un administrateur humain ou un script automatisé.

Vous pouvez afficher toutes les options d'une commande apigee-adminapi.sh, y compris les options permettant de spécifier des identifiants d'authentification unique, à l'aide de l'option -h de la commande. Exemple :

apigee-adminapi.sh orgs list -h

Transmettre un jeton de support (pour les administrateurs humains)

Étant donné que l'authentification unique Apigee modernisée ne prend pas en charge l'ancien flux de copier-coller /passcode, les administrateurs humains doivent utiliser l'utilitaire get_token pour effectuer le flux de code d'appareil OAuth 2.0, puis transmettre le jeton obtenu au script.

Commencez par obtenir un jeton :

/opt/apigee/apigee-openldap/bin/get_token -u adminEmail

Ensuite, utilisez le jeton lorsque vous appelez la commande :

apigee-adminapi.sh orgs list --sso-url http://edge_sso_IP_DNS:9099 --oauth-flow passcode \
  --admin adminEmail --oauth-token token_string

Où :

  • oauth-flow spécifie passcode (ce qui indique à l'ancien script qu'un jeton est fourni).
  • oauth-token contient la chaîne JWT brute obtenue à partir de get_token.

Transmettre un mot de passe (pour les utilisateurs machine uniquement)

Si vous automatisez les déploiements d'infrastructure, vous pouvez transmettre directement des identifiants à l'aide du flux password_grant. Toutefois, si la fédération SAML/OIDC est activée, les utilisateurs fantômes humains ne peuvent pas se connecter avec un mot de passe pour éviter le contournement de l'authentification multifacteur. Vous devez d'abord provisionner un utilisateur machine explicite dans OpenLDAP.

apigee-adminapi.sh orgs list --sso-url http://edge_sso_IP_DNS:9099 --oauth-flow password_grant \
  --admin machineUserEmail --oauth-password machineUserPassword

Où :

  • L'option sso-url spécifie l'URL de l'authentification unique Apigee. Modifiez le port ou le protocole si vous les avez modifiés par rapport à 9099 et HTTP.
  • oauth-flow spécifie password_grant.
  • machineUserEmail est l'adresse e-mail de l'utilisateur machine automatisé.
  • oauth-password spécifie le mot de passe de l'utilisateur machine.

Utiliser les utilitaires Edge avec l'authentification unique Apigee

De nombreux utilitaires Edge nécessitent des identifiants d'administrateur système, par exemple :

  • apigee-provision utilisé pour créer des organisations, des environnements et des hôtes virtuels
  • setup.sh utilisé pour ajouter des nœuds à un système existant
  • Tout autre utilitaire dans lequel vous devez spécifier les identifiants d'administrateur système dans un fichier de configuration

Ces utilitaires prennent comme entrée un fichier de configuration qui spécifie les identifiants de l'administrateur système. Avant l'activation de l'authentification unique, cela se fait à l'aide des propriétés suivantes :

ADMIN_EMAIL="adminEmail"
APIGEE_ADMINPW="adminPWord"

Une fois que vous avez activé l'authentification unique Apigee, vous devez utiliser d'autres propriétés pour spécifier les identifiants de l'administrateur système.

Utiliser un jeton de support (pour les administrateurs humains)

Pour les déploiements interactifs par des administrateurs humains, obtenez un jeton à l'aide de l'utilitaire get_token et fournissez-le via la propriété OAUTH_BEARER_TOKEN :

ADMIN_EMAIL="adminEmail"
SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
OAUTH_FLOW="passcode"
OAUTH_BEARER_TOKEN="token_string"

Où :

  • OAUTH_FLOW spécifie passcode (ce qui indique qu'un jeton est fourni).
  • OAUTH_BEARER_TOKEN contient la chaîne JWT brute obtenue à partir de get_token.

Utiliser un mot de passe (pour les utilisateurs machine uniquement)

Pour les déploiements entièrement automatisés, fournissez les identifiants d'un utilisateur machine provisionné explicitement à l'aide du flux password_grant :

ADMIN_EMAIL="machineUserEmail"
SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
OAUTH_FLOW="password_grant"
OAUTH_ADMIN_PASSWORD="machineUserPassword"

Où :

  • SSO_LOGIN_URL spécifie l'URL de l'authentification unique Apigee.
  • OAUTH_FLOW spécifie password_grant.
  • OAUTH_ADMIN_PASSWORD spécifie le mot de passe de l'utilisateur machine.