Automatiser des tâches avec des utilisateurs machine

Lorsque vous utilisez un fournisseur d'identité externe avec l'API Edge, le processus standard pour obtenir des jetons d'accès OIDC/OAuth2 à partir de la CLI est le flux de code d'appareil OAuth 2.0. Avec ce flux, vous utilisez l'utilitaire get_token, qui vous invite à accéder à une URL dans un navigateur pour vous authentifier via votre fournisseur d'identité, puis débloque automatiquement votre terminal.

Toutefois, votre environnement de développement peut prendre en charge l'automatisation des tâches de développement courantes, telles que l'automatisation des tests ou les pipelines CI/CD. Pour automatiser ces tâches lorsqu'un fournisseur d'identité externe est activé, vous devez pouvoir obtenir et actualiser les jetons OAuth2 sans interface graphique, sans nécessiter d'interaction avec le navigateur.

Edge prend en charge la génération automatique de jetons à l'aide d'utilisateurs de machines sans interface graphique. Un utilisateur de machine peut obtenir des jetons OIDC/OAuth2 via des octrois de mot de passe standards sans nécessiter de navigateur. Cela signifie que vous pouvez automatiser complètement le processus d'obtention et d'actualisation des jetons pour vos scripts.

Créer un utilisateur de machine

Vous pouvez créer un utilisateur de machine utilisé par toutes vos organisations ou créer un utilisateur de machine distinct pour chaque organisation.

L'utilisateur de machine est créé et stocké directement dans l'annuaire OpenLDAP local, et est explicitement tagué comme utilisateur de machine (employeeType: machineuser). Cela permet à l'authentification unique Apigee d'authentifier de manière sécurisée l'utilisateur de machine via un octroi de mot de passe, même lorsque SAML/OIDC fédéré est strictement appliqué aux utilisateurs humains.

Pour obtenir des instructions détaillées sur la création, la liste et la gestion des utilisateurs de machines, consultez Gérer les utilisateurs de machines avec apigee-machineuser.sh.

Obtenir et actualiser les jetons d'utilisateur de machine

Vous pouvez utiliser les utilitaires get_token et acurl fournis dans /opt/apigee/apigee-openldap/bin/, ou curl standard, pour obtenir des jetons pour les utilisateurs de machines.

  • Utiliser les utilitaires Apigee : les wrappers get_token et acurl gèrent automatiquement la mise en cache des jetons, la génération de charges utiles et l'actualisation automatique. Pour obtenir des instructions détaillées et des exemples d'utilisation de ces outils, consultez Utiliser les utilitaires get_token et acurl.
  • Utiliser curl standard : si vos scripts d'automatisation n'ont pas accès aux wrappers Apigee, vous pouvez interagir directement avec l'authentification unique Apigee à l'aide des commandes curl standards suivantes :

Pour obtenir et actualiser des jetons à l'aide de curl standard :

  1. Utilisez l'appel d'API suivant pour générer les jetons d'accès et d'actualisation initiaux directement à partir de l'authentification unique Apigee :
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token -s \
        -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access'
      
  2. Transmettez le jeton d'accès à un appel d'API Management Edge dans l'en-tête Authorization: Bearer :
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name
  3. Pour actualiser ultérieurement le jeton d'accès de manière native, utilisez l'appel suivant qui inclut le jeton d'actualisation :
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'