2 votes

Quelle clé de fichier la clé key dont a besoin google.auth.GoogleAuth() ?

Objectif

Utiliser googleapis avec les fonctions firebase. Obtenir un jeton JWT pour que les fonctions firebase puissent utiliser un compte de service avec délégation à l'échelle du domaine pour autoriser les API G Suite comme directory et drive.

Question

Qu'est-ce qui va dans path.join();

Qu'est-ce que __dirname Qu'est-ce que 'jwt.keys.json'?

À partir de cet exemple: https://github.com/googleapis/google-api-nodejs-client/blob/master/samples/jwt.js

  // Créer un nouveau client JWT en utilisant le fichier de clé téléchargé depuis la Console de développeur Google
  const auth = new google.auth.GoogleAuth({
    keyFile: path.join(__dirname, 'jwt.keys.json'), // <---- QU'EST-CE QUI VA DANS path.join()
    scopes: 'https://www.googleapis.com/auth/drive.readonly',
  });

Erreur

Lorsque j'exécute

  const auth = new google.auth.GoogleAuth({
    keyFile: path.join(__dirname, "TEST"), // <-- __dirname == /srv/ au moment de l'exécution
    scopes: 'https://www.googleapis.com/auth/drive.readonly',
  });

À partir des journaux GCP, je reçois cette erreur:

Erreur: ENOENT: aucun fichier ou répertoire de ce type, ouverture de '/srv/TEST'

Évidemment, TEST n'est pas valide, mais est-ce que '/srv/ l'est?

Quel est le keyFile, un chemin de fichier? une référence?

Autre exemple

https://github.com/googleapis/google-api-nodejs-client#service-to-service-authentication

1voto

adlopez15 Points 645

Vous semblez avoir beaucoup de questions sur le fonctionnement de ceci. Je vous encouragerais vivement à lire les bases de l'authentification Google.

JWT est l'abréviation de JSON Web Token. Il s'agit d'une norme définissant un moyen sécurisé de transmettre des informations entre les parties en format JSON. Dans votre code "jwt" est une classe contenant une propriété de clés. Il existe de nombreuses bibliothèques JWT. Il y a des packages populaires utilisant les frameworks Node/Express.

__dirname // Dans Node, il s'agit du chemin absolu du répertoire contenant le fichier en cours d'exécution.

path.join est une méthode qui joint différents segments de chemin en un seul chemin.

Ici, vous prenez le chemin absolu et concaténez une partie d'information à la fin du chemin. Je ne suis pas sûr de ce qui est contenu dans jwt.keys.json mais c'est ce qui est ajouté à la fin du chemin absolu dans ce cas.

Sans connaître la structure de votre projet ou ce vers quoi vous pointez, il n'est pas vraiment possible de dire ce qui est ou n'est pas un chemin valide dans votre projet.

keyFile est une clé dans un objet (comme indiqué par le format {clé: valeur}) sous google.auth. Comme vu dans le code d'exemple auquel vous faites référence, le script prend la bibliothèque google.auth et appelle une méthode pour construire un objet avec les informations que vous fournissez afin d'abstraire les autres éléments du processus d'authentification pour vous. Vous lui fournissez deux morceaux d'informations: 1) L'emplacement du fichier de clé qui sont probablement les informations d'identification et 2) La portée ou l'ensemble de permissions que vous autorisez. Dans l'exemple, il s'agit d'un accès en lecture seule à Drive.

MODIFICATION : Le fichier de clé privée que le service appelant utilise pour signer le JWT.

0voto

Chadd Points 234

J'ai trouvé la documentation ici :

https://googleapis.dev/nodejs/google-auth-library/5.10.1/classes/JWT.html

Si vous ne voulez pas inclure un fichier, vous pouvez utiliser key, keyId et email pour soumettre des informations d'identification lors de la demande d'autorisation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X