Serveur d'impression

Configuration de l'authentification pour les applications de production de serveur à serveur | Authentification | Google Cloud – Bien choisir son serveur d impression

Le 18 octobre 2019 - 10 minutes de lecture

Ce guide explique comment configurer l’authentification et l’autorisation pour le serveur.
aux applications de production de serveur. Authentification se réfère au processus de
déterminer l'identité d'un client. Autorisation se réfère au processus de
déterminer quelles autorisations un client authentifié a pour un particulier
Ressource. Autrement dit, l'authentification identifie votre identité et l'autorisation
détermine ce que vous pouvez faire. Pour plus d'informations sur l'authentification prise en charge
méthodes et comment les choisir, voir Vue d'ensemble de l'authentification.

Google utilise des informations d'identification pour identifier votre application pour le quota et la facturation.
Vos identifiants sont également utilisés pour autoriser l’accès aux API GCP,
ressources et fonctionnalités.

Fournir des informations d'identification pour votre application

Recherche automatique d'informations d'identification

Les bibliothèques clientes GCP utilisent un
stratégie appelée Application Default Credentials (ADC) pour rechercher
les informations d'identification de votre application. Lorsque votre code utilise une bibliothèque cliente, le
stratégie vérifie vos informations d'identification dans l'ordre suivant:

  1. Tout d'abord, ADC vérifie si la variable d'environnement
    GOOGLE_APPLICATION_CREDENTIALS est réglé. Si la variable est définie, ADC utilise le
    fichier de compte de service vers lequel pointe la variable. La section suivante
    Décrit comment définir la variable d'environnement.

  2. Si la variable d'environnement n'est pas définie, ADC utilise le compte de service par défaut.
    fournis par Compute Engine, Kubernetes Engine, App Engine et Cloud,
    pour les applications qui fonctionnent sur ces services.

  3. Si ADC ne peut utiliser aucune des informations d'identification ci-dessus, une erreur se produit.

L'exemple de code suivant illustre cette stratégie. L'exemple
ne spécifie pas explicitement les informations d'identification de l'application. Cependant, ADC est capable de
trouver implicitement les pouvoirs tant que le GOOGLE_APPLICATION_CREDENTIALS
la variable d’environnement est définie ou tant que l’application est en cours d’exécution
Fonctions Compute Engine, Kubernetes Engine, App Engine ou Cloud.

Vous devez
installer la bibliothèque cliente Cloud Storage
pour exécuter l'exemple suivant.

C #

Aller

Java

Node.js

PHP

Python

Rubis

Cette stratégie est utile pour tester et expérimenter, mais peut rendre la tâche difficile
pour indiquer les informations d'identification utilisées par votre application. Nous recommandons explicitement
spécifiant les informations d'identification que l'application doit utiliser, comme décrit dans
section suivante.

Obtention et fourniture manuelle des informations d'identification du compte de service

Si vous développez du code localement, déployez votre application sur site ou
Lors du déploiement sur un autre cloud public, vous pouvez créer et obtenir manuellement les informations d'identification du compte de service.

Création d'un compte de service

Les étapes suivantes décrivent comment créer un compte de service. Cependant, au lieu
de définir des autorisations au niveau du propriétaire, vous devez limiter l’accès au
autorisations, comme décrit dans la
section d'accès restreinte
au dessous de.

Console GCP

  1. Dans la console GCP, accédez à la Créer une clé de compte de service page.

    Accédez à la page Créer une clé de compte de service.

  2. Du Compte de service liste, sélectionnez
    Nouveau compte de service.
  3. dans le Nom du compte de service champ, entrez un nom.
  4. Du Rôle liste, sélectionnez Projet > Propriétaire.

    Remarque: Le Rôle le champ autorise votre compte de service
              accéder aux ressources. Vous pouvez afficher et modifier ce champ ultérieurement à l'aide de la touche
              Console GCP. Si vous êtes
              développer une application de production, spécifier plus granulaire
              autorisations que Projet> Propriétaire. Pour plus d'informations, voir
              attribuer des rôles aux comptes de service.
  5. Cliquez sur Créer. Un fichier JSON contenant votre clé
            téléchargements sur votre ordinateur.

Ligne de commande

Vous pouvez exécuter les commandes suivantes à l’aide de la touche
        Cloud SDK sur votre machine locale ou dans
        Cloud Shell.

  1. Créez le compte de service. Remplacer [NAME] avec un nom
          pour le compte de service.

    gcloud iam service-accounts créer [NAME]
  2. Accordez des autorisations au compte de service. Remplacer [PROJECT_ID]

    avec votre identifiant de projet.

    gcloud projects add-iam-policy-binding [PROJECT_ID] --member "serviceAccount:[NAME]@[PROJECT_ID].iam.gserviceaccount.com "--role" rôles / propriétaire "
    Remarque: Le Rôle le champ autorise votre compte de service
          accéder aux ressources. Vous pouvez afficher et modifier ce champ ultérieurement à l'aide de
          Console GCP. Si vous êtes
          développer une application de production, spécifier plus granulaire
          autorisations que Projet > Propriétaire. Pour plus d'informations, voir
          attribuer des rôles aux comptes de service.
  3. Générez le fichier de clé. Remplacer [FILE_NAME] avec un nom pour
          le fichier de clé.

    Les clés des comptes de service gcloud iam créent [FILE_NAME].json --iam-account [NAME]@[PROJECT_ID].iam.gserviceaccount.com

Fournir les informations d'identification du compte de service

Après avoir créé un compte de service, vous avez le choix entre deux options:
informations d'identification de votre application. Vous pouvez soit définir le
GOOGLE_APPLICATION_CREDENTIALS variable d'environnement
explicitement, ou vous pouvez passer le chemin de la clé du compte de service dans le code.

Définition de la variable d'environnement

Fournissez des informations d’authentification à votre code d’application en
définir la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS.
Remplacer [PATH] avec le chemin du fichier JSON qui contient votre
clé de compte de service, et [FILE_NAME] avec le
nom de fichier. Cette variable s’applique uniquement à votre session shell actuelle, donc si vous
ouvrez une nouvelle session, redéfinissez la variable.

Linux ou macOS

exporter GOOGLE_APPLICATION_CREDENTIALS = "[PATH]"

Par exemple:

exportez GOOGLE_APPLICATION_CREDENTIALS = "/ home / utilisateur / Téléchargements /[FILE_NAME].json "

les fenêtres

Avec PowerShell:

$ env: GOOGLE_APPLICATION_CREDENTIALS = "[PATH]"

Par exemple:

$ env: GOOGLE_APPLICATION_CREDENTIALS = "C:  Utilisateurs  nom d'utilisateur  Téléchargements [FILE_NAME].json "

Avec invite de commande:

set GOOGLE_APPLICATION_CREDENTIALS =[PATH]

Une fois que vous avez terminé les étapes ci-dessus, ADC
est capable de déterminer implicitement vos informations d'identification, comme décrit dans
fournir des informations d'identification à votre application
section ci-dessus. Nous recommandons cette approche, car elle nécessite moins de code.
De plus, en utilisant la variable d’environnement, votre code est plus portable,
parce que vous pouvez exécuter le même code dans plusieurs environnements avec différents
comptes de service.

Passer le chemin de la clé du compte de service dans le code

Vous pouvez également choisir de désigner explicitement votre fichier de compte de service dans
code, comme indiqué dans l'exemple de code suivant.

Vous devez
installer la bibliothèque cliente Cloud Storage
pour exécuter l'exemple suivant.

C #

Aller

Java

Node.js

PHP

Python

Rubis

Obtention des informations d'identification sur Compute Engine, Kubernetes Engine, Environnement flexible App Engine et les fonctions de cloud

Si votre application s'exécute sur Compute Engine, Kubernetes Engine, l’environnement flexible App Engine ou les fonctions de cloud, vous devez
vous n'avez pas besoin de créer votre propre compte de service. Compute Engine inclut un compte de service par défaut créé automatiquement pour vous. Vous pouvez affecter un
compte de service différent, par instance, si nécessaire. Lorsque vous créez un nouveau
instance, l'instance est automatiquement activée pour s'exécuter en tant que service par défaut
compte et dispose d'un ensemble d'autorisations d'autorisation par défaut. Pour plus
informations, voir
Compte de service par défaut de Compute Engine.

Après avoir configuré un compte de service, ADC peut implicitement trouver vos informations d'identification.
sans avoir besoin de changer votre code, comme décrit dans la section ci-dessus. Si
vous souhaitez utiliser spécifiquement les informations d'identification Compute Engine, vous pouvez explicitement
Faites-le, comme indiqué dans l'exemple de code suivant.

Vous devez
installer la bibliothèque cliente Cloud Storage
pour exécuter l'exemple suivant.

C #

Aller

Java

Node.js

PHP

Python

Rubis

Obtention des informations d'identification sur l'environnement standard App Engine

Si votre application s'exécute dans un environnement standard App Engine,
vous pouvez utiliser l'API d'identité App Engine App
pour obtenir des informations d'identification.

Après avoir configuré un compte de service, ADC peut implicitement trouver vos informations d'identification.
sans avoir besoin de changer votre code, comme décrit dans la section ci-dessus. Si
vous souhaitez utiliser spécifiquement les informations d'identification App Engine, vous pouvez explicitement
Faites-le, comme indiqué dans l'exemple de code suivant.

Vous devez
installer la bibliothèque cliente Cloud Storage
pour exécuter l'exemple suivant.

Restreindre l'accès

Accordez uniquement à votre application les autorisations dont elle a besoin pour
interagir avec les API, fonctionnalités ou ressources GCP applicables. GCP utilise le cloud
Gestion des identités et des accès (Cloud IAM) pour le contrôle d'accès. Lorsque vous créez un
compte de service, vous pouvez choisir un rôle Cloud IAM pour limiter l’accès. le
la procédure d’initiation à l’authentification vous invite à:
choisir la Propriétaire rôle lorsque vous créez un compte de service. Vous pouvez
changez cette valeur à tout moment. Pour plus d'informations, voir
attribution de rôles aux comptes de service.

Meilleures pratiques pour la gestion des informations d'identification

Les informations d'identification permettent d'accéder aux données sensibles. Les pratiques suivantes aident
protéger l'accès à ces ressources.

  • Ne pas incorporer les secrets liés à l’authentification dans le code source, tels que API
    clés
    , Jetons OAuth et compte de service
    identifiants. Vous pouvez utiliser une variable d'environnement pointant sur des informations d'identification.
    en dehors du code source de l'application, tel que
    Service de gestion de clé en nuage.

  • Utilisez des identifiants différents dans différents contextes, tels que les tests et
    environnements de production.

  • Ne transférez les informations d'identification que via HTTPS pour empêcher un tiers de
    intercepter vos informations d'identification. Ne jamais transférer en texte clair ou dans le cadre du
    URL

  • Ne jamais intégrer des informations d'identification de longue durée dans votre application côté client. Par exemple,
    N'intégrez pas les informations d'identification du compte de service dans une application mobile. Applications côté client
    peut être examiné et les informations d'identification peuvent facilement être trouvées et utilisées par une tierce partie.

  • Révoquez un jeton si vous n'en avez plus besoin.

Dépannage des erreurs de l'API

En savoir plus sur le dépannage des demandes d'API échouées lors d'erreurs d'API Cloud.

Et après

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.