Authentifier les requêtes API

L'appliance isolée Vertex AI sur Google Distributed Cloud (GDC) fournit des API et des services qui nécessitent une authentification. L'authentification vous permet de prouver votre identité pour accéder aux services à l'aide de jetons.

Les jetons sont des objets numériques qui vérifient qu'un appelant a fourni des identifiants appropriés et qu'ils ont été échangés avec succès contre le jeton. Le jeton contient des informations sur l'identité du compte demandeur et l'accès spécifique qu'il est autorisé à avoir.

Cette page explique comment s'authentifier automatiquement auprès des API Vertex AI. Selon que vous accédez aux API Vertex AI en tant qu'utilisateur ou avec un compte de service, cette page décrit les étapes à suivre pour obtenir un jeton d'authentification pour vos requêtes API.

Choisissez l'une des options suivantes pour obtenir un jeton d'authentification :

Compte utilisateur

Suivez ces étapes pour obtenir un jeton d'authentification avec des autorisations utilisateur :

  1. Notez le point de terminaison de l'API que vous souhaitez utiliser.

  2. Accédez au service Vertex AI que vous souhaitez utiliser en accordant à votre compte utilisateur le rôle correspondant indiqué dans Préparer les autorisations IAM.

  3. Connectez-vous à l'appliance isolée GDC avec le compte utilisateur avec lequel vous devez interagir avec l'API :

    gdcloud auth login
    
  4. Obtenez le jeton d'authentification :

    gdcloud auth print-identity-token --audiences=https://ENDPOINT
    

    Remplacez ENDPOINT par le point de terminaison de service que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison des services.

    Selon l'utilisation prévue du jeton d'authentification, vous devrez peut-être inclure le port après le point de terminaison de service dans le chemin d'accès des audiences, comme suit :

    • Si vous utilisez une bibliothèque cliente pour votre requête, vous devez inclure le port :443 après le point de terminaison de service dans le chemin d'accès des audiences. Par conséquent, le chemin d'accès --audiences dans la commande doit être https://ENDPOINT:443.
    • Si vous utilisez gRPC, curl ou des appels REST programmatiques pour votre requête, n'incluez pas le port. Par conséquent, le chemin d'accès --audiences dans la commande doit être https://ENDPOINT.

Le résultat affiche le jeton d'authentification. Ajoutez le jeton à l'en-tête des requêtes de ligne de commande que vous effectuez, comme dans l'exemple suivant :

-H "Authorization: Bearer TOKEN"

Remplacez TOKEN par la valeur du jeton d'authentification affiché dans le résultat.

Compte de service

Suivez ces étapes pour obtenir un jeton d'authentification avec un compte de service :

  1. Notez le point de terminaison de l'API que vous souhaitez utiliser.

  2. Configurez le compte de service que vous souhaitez utiliser pour accéder au service Vertex AI.

  3. Accordez au compte de service le rôle correspondant indiqué dans Préparer les autorisations IAM pour lui permettre d'accéder au service que vous souhaitez utiliser.

  4. Obtenez les paires de clés de service de votre compte de service.

  5. Installez la bibliothèque cliente google-auth :

    pip install google-auth
    
  6. Ajoutez le code suivant à un script Python :

    import os
    import google.auth
    from google.auth.transport import requests
    import requests as reqs
    
    os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "PATH_TO_SERVICE_KEY"
    os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "CERT_NAME"
    
    # If you use a client library for your request,
    # you must include port :443 after the service endpoint
    # in the audience path.
    audience = "https://ENDPOINT"
    
    creds, project_id = google.auth.default()
    print(project_id)
    creds = creds.with_gdch_audience(audience)
    
    def test_get_token():
      sesh = reqs.Session()
      req = requests.Request(session=sesh)
      creds.refresh(req)
      print(creds.token)
    
    if __name__=="__main__":
      test_get_token()
    

    Remplacez les éléments suivants :

    • PATH_TO_SERVICE_KEY : chemin d'accès au fichier JSON contenant les paires de clés de votre compte de service.
    • CERT_NAME : nom du fichier de certificat (CA) de l'autorité de certification, tel que org-1-trust-bundle-ca.cert. Vous n'avez besoin de cette valeur que si vous vous trouvez dans un environnement de développement. Sinon, omettez-la.
    • ENDPOINT : point de terminaison de service que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison des services. Selon l'utilisation prévue du jeton d'authentification, vous devrez peut-être inclure le port après le point de terminaison de service dans le chemin d'accès de l'audience, comme suit :

      • Si vous utilisez une bibliothèque cliente pour votre requête, vous devez inclure le port :443 après le point de terminaison de service dans le chemin d'accès de l'audience. Par conséquent, le audience chemin d'accès dans le script doit être "https://ENDPOINT:443".
      • Si vous utilisez gRPC, curl ou des appels REST programmatiques pour votre requête, n'incluez pas le port. Par conséquent, le chemin d'accès audience dans le script doit être "https://ENDPOINT".
  7. Enregistrez le script Python.

  8. Exécutez le script Python pour récupérer le jeton :

    python SCRIPT_NAME
    

    Remplacez SCRIPT_NAME par le nom que vous avez attribué à votre script Python, tel que token.py.

Le résultat affiche le jeton d'authentification. Ajoutez le jeton à l'en-tête des requêtes de ligne de commande que vous effectuez, comme dans l'exemple suivant :

-H "Authorization: Bearer TOKEN"

Remplacez TOKEN par la valeur du jeton d'authentification affiché dans le résultat.