Automatiser le processus de génération de jetons

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

Lorsque vous utilisez SAML avec l'API Edge, le processus que vous utilisez pour obtenir des jetons d'accès et d'actualisation OAuth2 à partir de l'assertion SAML est appelé flux de code secret. Avec le flux de code secret, vous utilisez un navigateur pour obtenir un code secret à usage unique qui vous permet ensuite d'obtenir des jetons OAuth2.

Cependant, votre environnement peut accepter l'automatisation pour des tâches de développement courantes, telles que l'automatisation des tests ou l'intégration continue/le déploiement continu (CI/CD). Pour automatiser ces tâches lorsque SAML est activé, vous avez besoin d'un moyen d'obtenir et d'actualiser les jetons OAuth2 sans avoir à copier-coller un code secret depuis un navigateur.

À propos des utilisateurs de la machine

Apigee Edge est compatible avec les utilisateurs machine de votre organisation où SAML est activé. Les utilisateurs de machines sont utilisés strictement pour l'automatisation et ne sont pas accessibles directement par un humain.

Un utilisateur machine peut obtenir des jetons OAuth2 sans avoir à spécifier de code secret. Cela signifie que vous pouvez automatiser complètement le processus d'obtention et d'actualisation des jetons OAuth2 à l'aide de l'API Edge.

Étapes à suivre pour automatiser le processus de génération de jetons

Pour automatiser le processus de génération des jetons, procédez comme suit:

Step Description
1 Créer un utilisateur machine dans votre zone d'identité SAML
2 Attribuer les rôles requis à l'utilisateur de la machine dans votre organisation Edge
3 Obtenir les jetons OAuth2 des utilisateurs de la machine

Vidéo: Regardez une courte vidéo pour savoir comment automatiser l'accès aux API Apigee Edge à l'aide d'identifiants utilisateur machine.

Gérer les utilisateurs de la machine pour les zones d'identité SAML

Apigee fournit l'interface de ligne de commande (CLI) de gestion des utilisateurs de la machine permettant de créer et de gérer des comptes utilisateur machine. La procédure d'utilisation de la CLI de gestion des utilisateurs de la machine est décrite dans les sections suivantes.

Utiliser la CLI

Pour utiliser la CLI de gestion des utilisateurs de la machine, commencez par télécharger et décompresser le fichier suivant : usermgmt.tar.gz(1)

Le format d'appel de la CLI est le suivant:

usermgmt_platform [command] [flags]

Le tableau suivant récapitule les plates-formes compatibles et la commande correspondante pour appeler la CLI de gestion des utilisateurs de la machine. (Les exécutables se trouvent dans le répertoire usermgmt.)

Plate-forme 32 bits 64 bits
Linux usermgmt_linux_386 usermgmt_linux_amd64
Mac usermgmt_darwin_386 usermgmt_darwin_amd64
Windows usermgmt_windows_386 usermgmt_windows_amd64

Le tableau suivant récapitule les commandes que vous pouvez spécifier.

Commande Plus d'informations
create Créer un utilisateur machine dans une zone d'identité
delete Supprimer un utilisateur machine dans une zone d'identité
help Obtenir de l'aide pour utiliser la CLI
list Répertorier tous les utilisateurs de machine d'une zone d'identité
reset Réinitialiser le mot de passe d'un utilisateur machine dans une zone d'identité

Vous pouvez éventuellement transmettre l'une des options suivantes pour afficher l'aide sur la commande spécifiée: -h ou --help

Se connecter à la CLI

La première fois que vous exécutez la CLI au cours d'une période de 24 heures, vous êtes invité à saisir les identifiants de votre compte zoneadmin.

Enter your Apigee credentials
Username: zoneadmin-username
Password: zoneadmin-password
If your user is opted with MFA, enter MFA code. Otherwise press enter to skip.
MFA: mfa-code_or_enter_to_skip

La CLI de gestion des utilisateurs de la machine stocke un jeton d'accès sur votre machine locale. Vous n'avez donc besoin de vous connecter qu'une seule fois par période de 24 heures.

Obtenir de l'aide pour utiliser la CLI

Affichez les informations d'utilisation de la CLI à l'aide de la commande usermgmt_platform help. Consultez la section Utiliser la CLI pour obtenir la liste des plates-formes compatibles.

usermgmt_platform help

Les informations d'aide suivantes s'affichent:

A command-line interface (CLI) to manage machine user accounts to automate
Apigee identity zone management. Use the CLI to create, list, delete,
and reset the password for machine users.

Usage:
  usermgmt [flags]
  usermgmt [command]

Available Commands:
  create  Creates a machine users in an identity zone.
  delete  Deletes a machine users in an identity zone.
  help    Help about any command
  list    Lists the machine users in an identity zone.
  reset   Resets the password for a machine user in an identity zone.

Flags:
  -h, --help               help for usermgmt

Use "usermgmt [command] --help" for more information about a command.

Affichez l'aide sur une commande spécifique en transmettant la commande et l'indicateur -h ou --help sur la ligne de commande.

Par exemple, pour obtenir de l'aide sur la commande "list" :

usermgmt_platform list -h

Les informations d'aide suivantes s'affichent:

Lists the machine users in an identity zone.

Usage:
  usermgmt list [flags]

Flags:
  -h, --help   help for list

Créer un utilisateur machine dans une zone d'identité

Créez un utilisateur machine dans une zone d'identité à l'aide de la commande usermgmt_platform create. Consultez la section Utiliser la CLI pour obtenir la liste des plates-formes compatibles.

  1. Saisissez la commande suivante :
    usermgmt_platform create

    La liste des zones d'identité s'affiche:

    myzone1
    myzone2
  2. Saisissez le nom d'une zone lorsque vous y êtes invité :
    Enter a zone name: myzone1
  3. Saisissez un nom d'utilisateur pour l'utilisateur de la machine :
    Create a Machine User
    Username: machineuser1@mycompany.com
  4. Saisissez un mot de passe pour l'utilisateur de la machine. Saisissez de nouveau le mot de passe lorsque vous y êtes invité.
    Password: password
    Re-enter password: password 

    L'utilisateur est créé.

    Created machine user machineuser1@mycompany.com

Lister tous les utilisateurs de machine d'une zone d'identité

Répertoriez tous les utilisateurs de la machine d'une zone d'identité à l'aide de la commande usermgmt_platform list. Consultez la section Utiliser la CLI pour obtenir la liste des plates-formes compatibles.

  1. Saisissez la commande suivante :
    usermgmt_platform list
    La liste des zones d'identité s'affiche :
    myzone1
    myzone2
  2. Saisissez le nom d'une zone lorsque vous y êtes invité :
    Enter a zone name: myzone1

    La liste des utilisateurs de la machine dans la zone d'identité s'affiche:

    Machine users in the zone:
    machineuser1@mycompany.com
        

Réinitialiser le mot de passe d'un utilisateur machine dans une zone d'identité

Réinitialisez le mot de passe d'un utilisateur machine dans une zone d'identité à l'aide de la commande usermgmt_platform reset. Consultez la section Utiliser la CLI pour obtenir la liste des plates-formes compatibles.

  1. Saisissez la commande suivante :
    usermgmt_platform reset

    La liste des zones d'identité s'affiche:

    myzone1
    myzone2
  2. Saisissez le nom d'une zone lorsque vous y êtes invité :
    Enter a zone name: myzone1
  3. Saisissez le nom de l'utilisateur de la machine dont vous souhaitez réinitialiser le mot de passe :
    Reset User Password
    Enter the username for the machine user
    Username: machineuser1@mycompany.com
  4. Saisissez un nouveau mot de passe pour l'utilisateur de la machine. Saisissez de nouveau le mot de passe lorsque vous y êtes invité.
    Enter the new password: password
    Re-enter password: password

    Le mot de passe est réinitialisé.

    Reset password for machine user machineuser1@mycompany.com

Supprimer un utilisateur de machine dans une zone d'identité

Supprimez un utilisateur machine dans une zone d'identité à l'aide de la commande usermgmt_platform delete. Consultez la section Utiliser la CLI pour obtenir la liste des plates-formes compatibles.

  1. Saisissez la commande suivante :
    usermgmt_platform delete
    La liste des zones d'identité s'affiche :
    myzone1
    myzone2
  2. Saisissez le nom d'une zone lorsque vous y êtes invité :
    Enter a zone name: myzone1
  3. Saisissez le nom de l'utilisateur de la machine que vous souhaitez supprimer :
    Delete User
    Enter the username for the machine user
    Username: machineuser1@mycompany.com 

    L'utilisateur de la machine est supprimé.

    Deleted user machineuser1@mycompany.com

Attribuer les rôles requis à l'utilisateur de la machine dans votre organisation Edge

À l'aide de l'interface utilisateur, ajoutez l'utilisateur machine à votre organisation Edge sur laquelle SAML est activé et attribuez-lui les rôles requis (par exemple, administrateur de l'organisation), comme décrit dans la section Ajouter des utilisateurs.

Obtenir les jetons OAuth2 de l'utilisateur de la machine

Vous pouvez automatiser le processus de génération des jetons et gérer leur mise en cache pour les utilisateurs de machines à l'aide des utilitaires acurl(1) et get_token(1), comme décrit dans OAuth2 pour les utilisateurs de machine et Utilisateurs de machine dans les zones SAML.

Pour obtenir manuellement les jetons OAuth2 de l'utilisateur de la machine avec curl:

  1. Utilisez l'outil d'encodage d'URL de votre choix pour encoder le nom d'utilisateur et le mot de passe de l'utilisateur de la machine.

    Avertissement:Utilisez un outil d'encodage d'URL interne pour vous assurer que les identifiants de l'utilisateur machine ne seront pas compromis.

  2. Générez les jetons d'accès et d'actualisation initiaux en appelant le point de terminaison du jeton SAML, comme illustré dans l'exemple suivant :
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token -s \
      -d 'grant_type=password&username=machineusername&password=machineuserpassword'

    Pour l'autorisation, transmettez les identifiants client OAuth2 réservés, ZWRnZWNsaTplZGdlY2xpc2VjcmV0, dans l'en-tête Authorization. L'appel imprime les jetons d'accès et d'actualisation dans stdout.

  3. Transmettez le jeton d'accès à un appel d'API de gestion Edge en tant qu'en-tête de support :
    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      https://api.enterprise.apigee.com/v1/organizations/orgName
  4. Lorsque le jeton d'accès expire, vous pouvez l'actualiser en l'envoyant au point de terminaison du jeton SAML, comme indiqué dans l'exemple suivant :
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

(1) Copyright 2023 Google LLC
Les outils usermgmt, acurl et get_token sont mis à disposition en tant que "Logiciels" en vertu du contrat régissant votre utilisation de Google Cloud Platform, y compris les Conditions d'utilisation spécifiques aux services disponibles à l'adresse https://cloud.google.com/terms/service-terms.