Activation API Google Admin SDK pour Google Apps

Google uniformise les API REST de ses services : Authentification par AOuth2, format des données JSON, API globale découpée en différents sous-services (les scopes ou "étendues d'API" en français), etc.
L'API de gestion d'un domaine Google Apps hébergé chez Google est donc concernée par cette uniformisation.

La sous-partie de l'API générale dédiée à la gestion des comptes, des groupes, des audits, etc est connue sous le nom Admin SDK : https://developers.google.com/admin-sdk/?hl=fr
Admin SDK comprend des scopes différents selon que l'on doit gérer les utilisateurs et les groupes (directory : https://developers.google.com/admin-sdk/directory/v1/guides/manage-users?hl=fr ), des rapports ou des audits d'usage (report : https://developers.google.com/admin-sdk/reports/v1/guides/manage-audit-drive?hl=fr ) ou encore que l'on souhaite procéder à la migration des mails ou des groupes (email-migration : https://developers.google.com/admin-sdk/email-migration/?hl=fr ou groupe-migration)

Chaque scope est identifié par une URL propre.
Exemple pour la gestion des utilisateurs : https://www.googleapis.com/auth/admin.directory.user

Les requêtes REST se feront donc, après authentification OAuth, sur des chemins construits sur cette URL de base.
Exemple de création d'un utilisateur : POST https://www.googleapis.com/admin/directory/v1/users en joignant dans le corps du POST des données structurées en JSON au format attendu par l'API

Si vous souhaitez donc pouvoir scripter des actions à réaliser sur votre domaine Google Apps en tant qu'administrateur (c'est à dire sans le consentement explicite de l'utilisateur dont vous allez manipuler les données), il est nécessaire au préalable d'activer l'API choisie et de procéder à une délégation d'autorité d'un compte administrateur du domaine à un compte de service (compte applicatif utilisé par votre script) : https://developers.google.com/admin-sdk/directory/v1/guides/delegation#create_the_service_account_and_its_credentials


Cette démarche requiert quelques étapes :

Création du compte de service

Le compte de service est un compte qui identifiera votre application (script de création de comptes par exemple) via OAuth2.
Pour ceci, authentifiez vous auprès de Google avec un compte administrateur de votre domaine Google Apps et rendez-vous sur la Console Développeurs de Google : https://console.developers.google.com/
  • Créez un nouveau projet : exemple "Provisioning"
  • Cliquez sur votre projet et allez dans la Rubrique "API et Authentification", puis cliquez sur "API", une liste d'API disponibles est alors affichée.
  • Choisissez les API que vous souhaitez et désactivez les API inutiles pour vos scripts. Exemple : pour gérer les comptes et les groupes, on choisira uniquement "Admin SDK" et "Group Settings API".
  • Cliquez ensuite sur "Identifiants" toujours dans la rubrique "API et Authentification"
  • Sous l'onglet OAuth, cliquez sur "Créer un identifiant client" et dans le pop-up qui s'affiche, choisissez "Compte de service", puis validez.
  • Un compte de service est alors créé et un fichier clé privée P12 de ce compte est téléchargé dans votre browser. Ce fichier doit être conservé et non divulgué (un nouveau peut être généré par le bouton "Générer une clé P12").
Votre compte de service est alors créé et est identifié par les informations suivantes que vous devrez associer à votre script ou à votre domaine :
  • un identifiant client ClientID : 1234546465454.apps.googleusercontent.com
  • une adresse e-mail : 1234546465454@developer.gserviceaccount.com
  • la clé privée P12 du fichier reçu


Délégation d'autorité au compte de service et activation des scopes

L'étape suivante consiste maintenant à paramétrer notre domaine Google Apps pour autoriser le compte de service créé à accéder à ses ressources (utilisateurs, groupes, etc).
On suppose à ce point que vous aviez déjà autorisé l'API pour votre domaine.

  • Rendez-vous dans la console d'administration de votre domaine : https://admin.google.com/votre_domainer/AdminHome , authentifié avec un compte administrateur.
  • Choisissez le menu "Sécurité".
  • Choisissez le menu "Paramètres avancés".
  • Dans l'onglet "Authentification", choisissez alors "Gérer l'accès au client API".
Un formulaire de saisie s'affiche alors.
  • Dans la zone "Nom du client", vous devez saisir le clientID de votre compte de service (ex : 1234546465454.apps.googleusercontent.com).
  • Dans la zone Une ou plusieurs étendues d'API, vous saisissez un ou plusieurs URL de scope séparés par des virgules (ex : https://www.googleapis.com/auth/admin.directory.user,  https://www.googleapis.com/auth/admin.directory.user.readonly) et vous cliquez sur "Autoriser".

Une ligne d'autorisation d'un nouveau compte de service apparaît alors dans le formulaire.

Votre compte de client a désormais le droit d'utiliser l'API sur les scopes sélectionnés de votre domaine.




Comments