S'authentifier avec un compte utilisateur dans les applications installées

Ce guide explique comment s'authentifier à l'aide des comptes utilisateur pour accéder à l'API Google BigQuery lorsque votre application est installée sur les ordinateurs des utilisateurs.

Un identifiant utilisateur peut être utilisé pour s'assurer que l'application n'accède qu'aux tables BigQuery présentées à l'utilisateur final. Un identifiant utilisateur permet d'exécuter des requêtes uniquement sur le projet Cloud Platform de l'utilisateur final plutôt que sur le projet de l'application. Les requêtes sont donc facturées à l'utilisateur au lieu de l'application.

Avant de commencer

  1. Créez un projet Google Cloud Platform représentant l'application que vous avez installée.
  2. Installez les bibliothèques clientes BigQuery.
  3. Installez des bibliothèques supplémentaires.

    Python

    Installez la bibliothèque d'intégration oauthlib pour Google Auth.
    pip install --upgrade google-auth-oauthlib

Configurer les identifiants client

  1. Accédez à la page Identifiants de l'API dans la console Google Cloud Platform.
  2. Remplissez les champs obligatoires sur l'écran d'autorisation OAuth.
  3. Sur la page Identifiants, cliquez sur le bouton Créer des identifiants.

    Sélectionnez ID client OAuth.

  4. Pour le type d'application, sélectionnez Autre, puis cliquez sur Créer.
  5. Pour télécharger les identifiants, cliquez sur le bouton Télécharger JSON.

    Télécharger au format JSON

    Enregistrez le fichier d'identifiants client_secrets.json. Ce fichier doit être distribué avec votre application.

S'authentifier et appeler l'API

  1. Utilisez les identifiants client pour lancer le flux OAuth 2.0.

    Python

    def authenticate_and_query(project, query, launch_browser=True):
        from google_auth_oauthlib import flow
    
        appflow = flow.InstalledAppFlow.from_client_secrets_file(
            'client_secrets.json',
            scopes=['https://www.googleapis.com/auth/bigquery'])
    
        if launch_browser:
            appflow.run_local_server()
        else:
            appflow.run_console()
    
        run_query(appflow.credentials, project, query)
  2. Utilisez les identifiants authentifiés pour vous connecter à l'API BigQuery.

    Python

    def run_query(credentials, project, query):
        from google.cloud import bigquery
    
        client = bigquery.Client(project=project, credentials=credentials)
        query_job = client.query(query)
    
        # Print the results.
        for row in query_job.result():  # Wait for the job to complete.
            print(row)

L'exécution de l'exemple de code ouvre un navigateur qui demande l'accès au projet associé aux codes secrets du client. Les identifiants correspondants peuvent ensuite être utilisés pour accéder aux ressources BigQuery de l'utilisateur, car l'exemple a demandé le champ d'application BigQuery.

Étapes suivantes

  1. Découvrez d'autres moyens d'authentifier votre application pour accéder à l'API BigQuery.
  2. Découvrez l'authentification avec les identifiants de l'utilisateur final dans toutes les API Google Cloud Platform
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.