Provisionner des comptes utilisateur

Le provisionnement d'identité (ou provisionnement de compte) consiste à configurer des comptes et à établir des connexions entre les trois systèmes, et dans certains cas, à configurer des connexions entre les utilisateurs et leurs appareils.

Dans un environnement Android Enterprise, jusqu'à trois systèmes différents contiennent des informations sur le compte:

  • L'annuaire des utilisateurs de l'organisation est la source définitive d'informations sur les utilisateurs.
  • Vous (le fournisseur de la solution EMM) devez gérer au moins un répertoire minimal des utilisateurs de l'organisation.
  • Google conserve certaines informations sur les comptes Google Play d'entreprise et les comptes Google pour fournir la gestion des applications via Google Play.

Une ressource Users représente un compte associé à une entreprise. Le compte peut être spécifique à un appareil ou associé à une personne qui possède plusieurs appareils (téléphone mobile, tablette, etc.) et qui utilise le compte sur chacun d'eux. Le compte peut fournir un accès à Google Play d'entreprise uniquement ou à d'autres services Google, en fonction de la configuration de l'entreprise de votre client:

  • Les comptes Google Play d'entreprise permettent aux entreprises de créer automatiquement des comptes utilisateur ou d'appareil via leur fournisseur de solutions de gestion de la mobilité d'entreprise (EMM). Ces comptes ne permettent d'accéder qu'à Google Play d'entreprise.

  • Les comptes Google sont des comptes existants gérés par Google et qui nécessitent une synchronisation avec les sources de compte Google.

Tableau 1: Champs et méthodes de l'API Users

 Comptes Google Play d'entrepriseComptes Google gérés
Champ
id
kind
accountIdentifierIdentifiant unique que vous créez et associez à l'ID (userId) renvoyé par Google Play. N'utilisez pas d'informations permettant d'identifier personnellement l'utilisateur.Non défini.
accountTypedeviceAccount, userAccountuserAccount
displayNameNom que vous affichez dans les éléments de l'interface utilisateur, par exemple dans Google Play. N'utilisez pas d'informations permettant d'identifier personnellement l'utilisateur.Non défini.
managementTypeemmManagedgoogleManaged, emmManaged
primaryEmailNon défini.Ce champ est la clé primaire permettant de gérer la synchronisation des comptes de domaine gérés par Google avec les comptes utilisateur de votre système.
Méthodes
supprimer
generateAuthenticationToken
generateToken
get
getAvailableProductSet
insert
list
revokeToken
setAvailableProductSet
update

Comptes Google Play d'entreprise

Il existe deux types de comptes Google Play gérés:

Compte utilisateur
Permet à un seul utilisateur d'accéder à Google Play d'entreprise depuis tous ses appareils. Vous devez provisionner des comptes utilisateur pour vos utilisateurs. Ils ne disposent pas des identifiants nécessaires pour ajouter eux-mêmes des comptes Google Play gérés.
Pour créer un compte utilisateur, appelez Users.insert. Définissez le type de compte sur userType et définissez un accountIdentifier, qui fait référence uniquement à l'utilisateur au sein de l'entreprise.
Bonne pratique: N'utilisez pas le même compte sur plus de 10 appareils.
Compte d'appareil
Fournit un accès à Google Play d'entreprise à partir d'un seul appareil. Si un jeton d'authentification a été émis pour un compte d'appareil, une nouvelle demande de jeton d'authentification pour ce compte d'appareil désactive le jeton précédent. Chaque appareil doit disposer de sa propre licence pour les applications.
Pour créer un compte d'appareil, appelez Users.insert et définissez le type de compte sur deviceType.

Vous créez et gérez un mappage entre les identités des utilisateurs ou des appareils et les comptes Google Play d'entreprise correspondants, et vous gérez les comptes tout au long de leur cycle de vie. L'organisation n'a pas besoin de contrôler directement ces comptes Google Play d'entreprise, car ils ne servent qu'à gérer les applications.

Conditions requises pour les consoles et les serveurs EMM

Les comptes Google Play gérés sont créés à la demande, de manière programmatique, à l'aide des API EMM Google Play et des API du framework Android dans les composants de votre solution EMM (console EMM, serveur EMM et DPC). Ces composants interagissent au moment de l'exécution pour créer un compte utilisateur et provisionner le profil professionnel sur l'appareil cible.

Votre console ou serveur EMM doit:

  • Fournissez un mécanisme permettant de créer des identifiants de compte anonymes uniques (champ accountIdentifier) à utiliser dans l'appel à Users.insert. Par exemple, vous pouvez utiliser une valeur interne pour l'utilisateur ("sanjeev237389") ou un numéro d'étiquette d'appareil cryptique ("asset#44448"). Évitez d'utiliser des informations permettant d'identifier personnellement l'utilisateur comme identifiant de compte.

  • Stockez le mappage entre le userId (retourné à partir de l'appel insert) et le accountIdentifier que vous sélectionnez.

Pour connaître les exigences concernant votre DPC, consultez Créer un outil de contrôle des règles relatives aux appareils.

Créer un compte utilisateur Google Play géré

  1. Un utilisateur se connecte à votre DPC à l'aide (généralement) d'identifiants d'entreprise.
  2. Le DPC demande des informations sur l'utilisateur au serveur ou à la console EMM. En supposant que l'utilisateur soit inconnu de votre système :
    1. Envoyez une demande de nouveau compte Google Play géré en appelant Users.insert avec les valeurs pour les nouveaux accountIdentifier, displayName et accountType.
      • Votre système doit créer l'accountIdentifier. L'identifiant du compte doit être une valeur unique dans votre système. N'utilisez pas d'informations permettant d'identifier personnellement l'utilisateur comme identifiant de compte.
      • Le displayName s'affiche dans le sélecteur de compte du Google Play Store et doit avoir une signification pour l'utilisateur (mais pas d'informations personnelles). Par exemple, le nom peut inclure le nom de l'organisation ou un nom générique associé à l'EMM.
      • Définissez accountType sur userAccount ou deviceAccount. Un userAccount peut être utilisé sur plusieurs appareils, tandis qu'un deviceAccount est spécifique à un seul appareil. Le accountType spécifié peut être deviceType ou userType.
      • Définissez managementType sur emmManaged.
    2. Google Play traite la requête, crée le compte et renvoie un userId.
    3. Stockez le mappage entre le accountIdentifier et le userId dans votre datastore.
    4. Appelez Users.generateAuthenticationToken avec les userId et enterpriseId. Google Play renvoie un jeton d'authentification qui peut être utilisé une seule fois et qui doit être utilisé sous quelques minutes.
    5. Transférez le jeton d'authentification de manière sécurisée à votre DPC.
  3. Le DPC provisionne le profil professionnel et ajoute le compte au profil professionnel ou à l'appareil.
  4. L'utilisateur peut accéder à Google Play d'entreprise dans le profil professionnel ou l'appareil.

Comptes administrateur

Lorsqu'un administrateur crée une entreprise avec des comptes d'entreprise Google Play, le compte Google qu'il utilise ne peut pas être un compte G Suite. Le compte qu'il utilise devient propriétaire de l'entreprise. Le propriétaire peut ajouter d'autres propriétaires et administrateurs dans la console Google Play d'entreprise.

Enterprises.get et Enterprises.completeSignup renvoient tous deux une liste des adresses e-mail des administrateurs associées à une entreprise (entreprises disposant de comptes d'entreprise Google Play uniquement).

Gérer les cycles de vie des comptes

Dans un déploiement de comptes Google Play Accounts gérés, vous êtes responsable des cycles de vie des comptes utilisateur et des comptes d'appareils, ce qui signifie que vous créez, mettez à jour et supprimez ces comptes.

Vous créez les comptes lors du provisionnement de l'appareil, un processus qui implique votre application DPC et votre console EMM. Pour obtenir des instructions, consultez la méthode des comptes Google Play Accounts.

Pour modifier les informations d'un compte, appelez Users.update.

Pour supprimer un compte, appelez Users.delete.

Les administrateurs ne peuvent pas supprimer des comptes individuels, mais ils peuvent supprimer une entreprise avec des comptes d'entreprise Google Play Accounts. Les appareils et les comptes utilisateur associés à l'entreprise sont alors supprimés, comme décrit dans la section Désinscription, réinscription, suppression.

Expiration du compte

Il arrive parfois que des comptes ou leurs jetons expirent, pour plusieurs raisons:

  • Le jeton d'authentification obtenu pour ajouter le compte à l'appareil a expiré.
  • Le compte ou l'entreprise a été supprimé.
  • Pour les comptes d'appareil, le compte a été ajouté à un nouvel appareil et est donc désactivé sur l'ancien.
  • Des vérifications automatiques de l'utilisation abusive sont déclenchées.
  • Si un appareil est hors connexion pendant plus de 270 jours, ses informations peuvent être supprimées lors d'un processus de nettoyage par lot.

Dans la plupart des cas (sauf si l'EMM déplace intentionnellement un compte d'appareil vers un nouvel appareil), il est recommandé d'utiliser l'API Play EMM pour demander un nouveau jeton au serveur EMM, noter l'état du compte et de l'entreprise, ainsi que les erreurs renvoyées, puis prendre les mesures appropriées sur l'appareil. Par exemple, renouvelez le jeton ou, si l'erreur n'est pas récupérable, réinitialisez ou désinscrivez l'appareil.

Pour renouveler correctement le jeton, procédez comme suit:

  1. Appelez users.generateAuthenticationToken pour demander un nouveau jeton d'authentification pour le compte.
  2. Si l'appel aboutit, supprimez le compte existant et ajoutez le nouveau compte à l'aide de la bibliothèque d'assistance DPC.
  3. Si l'appel échoue, supprimez le compte de l'appareil, créez un nouvel utilisateur à l'aide de users.insert, générez un jeton d'authentification, puis ajoutez le compte à l'appareil.

La version 9.0.00 des services Google Play informe votre DPC que le compte a expiré à l'aide de l'action de diffusion:

  1. Lorsque le compte Google Play géré est invalidé sur un appareil, le DPC reçoit une diffusion avec l'action suivante:

    com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED

    L'intent de diffusion contient un extra Parcelable avec le nom account, qui est l'objet Account du compte invalidé.

  2. Le DPC vérifie Account#name auprès du serveur EMM pour identifier le compte invalidé.

  3. Le DPC demande de nouveaux identifiants ou un nouveau compte, en suivant le même flux que celui utilisé pour provisionner l'appareil initialement.


Comptes Google

Pour les organisations qui utilisent des comptes Google, les comptes utilisateur d'une solution EMM reflètent les comptes utilisateur existants associés à un autre service Google (par exemple, G Suite). Ces comptes sont googleManaged (tableau 1), car les services backend de Google sont la source de la création et des informations sur le compte.

En tant qu'EMM, vous pouvez fournir des mécanismes dans votre console pour faciliter la création et la synchronisation continue des comptes utilisateur stockés dans votre système avec leurs sources de comptes de domaine Google à l'aide d'outils tels que Google Cloud Directory Sync (GCDS) et l'API Directory du SDK Google Admin. Consultez une présentation des différentes approches. Le modèle d'identité de domaine géré par Google exige que le compte utilisateur existe dans le contexte de votre solution (console EMM, serveur EMM, peut-être dans un datastore) avant de pouvoir être provisionné sur l'un des appareils de l'utilisateur dans le contexte d'un profil professionnel.

Lors du provisionnement des identités, le domaine géré par Google de l'organisation est renseigné avec des comptes utilisateur. Dans certains cas, les identités en ligne existantes des utilisateurs (par exemple, leurs comptes Microsoft Exchange) sont synchronisées avec leurs comptes Google.

Après la synchronisation initiale, mais avant la distribution des applications sur l'appareil de l'utilisateur, celui-ci doit activer son compte Google, comme décrit dans la section Activer des comptes sur des appareils. Cette activation permet à l'appareil d'accéder à Google Play d'entreprise.

Synchroniser les comptes client

Dans un déploiement de comptes Google, l'organisation peut utiliser l'outil GCDS pour synchroniser les données de son domaine G Suite avec celles de son annuaire LDAP. Vous pouvez également utiliser GCDS pour le faire au nom de l'organisation, si elle vous y autorise.

L'outil GCDS appelle l'API Google Directory et synchronise les noms d'utilisateur, mais pas les mots de passe.

Si l'organisation utilise Microsoft Active Directory et souhaite synchroniser les mots de passe G Suite des utilisateurs avec leurs mots de passe Active Directory, elle (ou vous) peut utiliser l'outil G Suite Password Sync (GSPS) avec GCDS.

Pour obtenir des instructions destinées aux administrateurs sur GCDS, consultez Préparer votre domaine G Suite à la synchronisation.

API Google Directory

Dans un déploiement de comptes Google, vous pouvez utiliser l'API Google Directory pour synchroniser des répertoires actifs, des mots de passe ou les deux:

  • Utiliser l'API Directory pour la synchronisation du répertoire uniquement Si vous disposez d'un accès en lecture seule au domaine Google géré de l'organisation, vous pouvez utiliser l'API Google Directory pour obtenir des informations sur le compte Google, telles que les noms d'utilisateur (mais pas les mots de passe) de Google. Étant donné que vous ne pouvez pas écrire de données dans les comptes Google des utilisateurs, l'organisation est entièrement responsable des cycles de vie des comptes.

    Le scénario 1 et les scénarios d'authentification SSO basée sur SAML décrivent plus en détail cette situation.

    Pour en savoir plus sur l'utilisation de l'API Directory de cette manière, consultez la section Récupérer tous les utilisateurs du compte dans la documentation de l'API Directory.

  • Utiliser l'API Directory pour la synchronisation du répertoire et des mots de passe (facultatif) Si vous disposez d'un accès en lecture-écriture au domaine Google géré de l'organisation, vous pouvez utiliser l'API Google Directory pour obtenir des noms d'utilisateur, des mots de passe et d'autres informations sur le compte Google. Vous pouvez mettre à jour ces informations et les synchroniser avec votre propre base de données. Vous pouvez être responsable en totalité ou en partie des cycles de vie des comptes, en fonction de la solution que vous proposez à votre client.

    Le scénario 2 décrit cette situation plus en détail.

    Pour en savoir plus sur l'utilisation de l'API Directory pour gérer les informations de compte utilisateur, consultez le guide du développeur Directory API : User Accounts (API Directory : comptes utilisateur).

Scénarios de comptes Google

Vous trouverez ci-dessous quelques scénarios courants de provisionnement d'identité pour les comptes Google.

Scénario 1: Le client est responsable du cycle de vie des comptes

Utilisation de l'API Directory (avec accès en lecture seule) et de GCDS

Dans ce scénario, votre client crée et gère des comptes Google pour ses utilisateurs.

Vous obtenez des informations sur les comptes utilisateur à partir de l'annuaire LDAP de l'organisation, et vous les mettez en corrélation avec les données de compte Google que vous obtenez de Google via l'API Directory de Google.

L'organisation est entièrement responsable du cycle de vie des comptes. Par exemple, lorsqu'un compte Google est créé, l'entreprise ajoute l'utilisateur à son annuaire LDAP. La prochaine fois que vous synchroniserez votre base de données avec l'annuaire LDAP, elle recevra des informations sur ce nouvel utilisateur.

Dans ce cas :

  • Vous disposez d'un accès en lecture seule aux comptes Google.
  • Votre base de données acquiert des noms de comptes Google, mais pas de noms d'utilisateur ni de mots de passe LDAP.
  • Vous utilisez l'API Google Directory pour obtenir des informations de base sur le compte des utilisateurs de votre client. (les informations disponibles sont les informations non enregistrables rendues par une requête Users.get). Vous utilisez ces informations pour vérifier que les comptes Google des utilisateurs existent afin qu'ils puissent s'authentifier sur leurs appareils.
  • Votre client utilise l'outil GCDS pour effectuer une synchronisation à sens unique afin de renseigner les comptes Google des utilisateurs. (L'organisation utilise probablement également GCDS pour sa propre synchronisation continue une fois le provisionnement d'identité terminé.) L'organisation peut également utiliser l'outil GSPS pour synchroniser non seulement les noms d'utilisateur, mais aussi les mots de passe.

Scénario 2: L'EMM est responsable des cycles de vie des comptes

Utiliser l'API Directory avec un accès en lecture/écriture

Dans ce scénario, vous gérez le processus de création de comptes Google pour le compte de votre client et vous êtes responsable du cycle de vie des comptes des utilisateurs.

Par exemple, lorsque les informations utilisateur changent dans le répertoire LDAP de l'organisation, vous êtes tenu de mettre à jour le compte Google de l'utilisateur. GCDS n'est pas utilisé dans ce scénario.

Dans ce cas :

  • Vous disposez d'un accès en lecture/écriture aux comptes Google.
  • Votre base de données acquiert les noms de compte Google et les noms d'utilisateur LDAP (et éventuellement les hachages de mots de passe).
  • Vous utilisez l'API Google Directory au nom de votre client pour lire et écrire des informations de compte pour les utilisateurs de l'organisation. (les informations disponibles sont les informations non modifiables rendues par une requête Users.get). Vous utilisez ces informations pour vérifier que les comptes Google des utilisateurs existent afin qu'ils puissent s'authentifier sur leurs appareils.
  • L'outil GCDS n'est pas utilisé.

Scénarios d'authentification unique basée sur SAML

Dans un déploiement de comptes Google, vous ou votre client pouvez utiliser le langage SAML (Security Assertion Markup Language) avec un fournisseur d'identité (IdP) pour authentifier le compte Google associé à chaque utilisateur. Vous utilisez les noms de compte Google pour vérifier que les comptes Google des utilisateurs existent, ce qui est nécessaire pour leur authentification lorsqu'ils se connectent à leurs appareils. Par exemple, SAML peut être utilisé dans le scénario 2. Pour savoir comment procéder, consultez Configurer l'authentification unique (SSO) pour les comptes G Suite.

Activer des comptes sur des appareils

Pour que les applications soient distribuées sur l'appareil d'un utilisateur via Google Play d'entreprise, l'utilisateur doit se connecter à l'appareil lors du provisionnement de l'appareil:

  • Dans le provisionnement d'appareils avec des comptes Google Play d'entreprise, votre DPC guide l'utilisateur pour qu'il se connecte à l'aide d'identifiants acceptés par votre console EMM, généralement des identifiants de messagerie professionnelle.
  • Dans un déploiement de comptes Google, votre DPC guide l'utilisateur pour qu'il saisisse ses identifiants de connexion au compte Google. En règle générale, ces identifiants correspondent à ceux avec lesquels les utilisateurs se connectent à leur domaine d'entreprise lorsqu'ils sont synchronisés avec GCDS ou GSPS, ou lorsqu'une organisation utilise un fournisseur d'identité pour l'authentification. Cela active le compte Google de l'utilisateur, génère un ID d'appareil unique et lie l'identité du compte Google de l'utilisateur à l'ID de l'appareil.