Provisionner des comptes utilisateur

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

Dans un environnement d'entreprise Android, jusqu'à trois systèmes différents détiennent des informations de compte:

  • L'annuaire des utilisateurs de l'organisation est la source d'informations la plus fiable sur les utilisateurs.
  • Vous (le fournisseur de solution EMM) devez gérer au moins un répertoire minimal des utilisateurs de l'entreprise.
  • Google conserve certaines informations sur les comptes Google Play d'entreprise et les comptes Google pour permettre 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 être associé à une personne qui possède plusieurs appareils (téléphone mobile, tablette, etc.) et utilise le compte sur tous ces appareils. 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 offrent aux entreprises un moyen transparent de créer automatiquement des comptes utilisateur ou d'appareils via leur fournisseur de solutions de gestion de la mobilité en 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 qui nécessitent une synchronisation avec les sources de comptes Google.

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

 Comptes Google Play d'entrepriseComptes gérés par Google
Champ
id
kind
accountIdentifierIdentifiant unique que vous créez et que vous 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 d'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 vous 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 d'entreprise:

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. Ceux-ci ne disposent pas des identifiants nécessaires pour ajouter eux-mêmes des comptes Google Play d'entreprise.
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 à l'utilisateur de manière unique au sein de l'entreprise.
Bonne pratique: N'utilisez pas le même compte sur plus de 10 appareils.
Compte d'appareil
Fournit l'accès à Google Play d'entreprise depuis 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 d'application.
Pour créer un compte sur un 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 gérés correspondants, et vous gérez les comptes tout au long de leur cycle de vie. L'entreprise n'a pas besoin d'un contrôle direct sur ces comptes Google Play gérés, car ils servent uniquement à la gestion des applications.

Configuration requise pour les consoles et les serveurs EMM

Les comptes Google Play d'entreprise sont créés à la demande, de manière automatisée, à l'aide des API EMM Google Play et des API du framework Android sur 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 remplir les conditions suivantes:

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

  • Stockez le mappage entre le userId (renvoyé par l'appel insert) et le accountIdentifier que vous sélectionnez.

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

Créer un compte utilisateur Google Play d'entreprise

  1. Un utilisateur se connecte à votre DPC à l'aide d'identifiants professionnels (généralement).
  2. L'outil DPC demande des informations sur l'utilisateur à la console ou au serveur EMM. En supposant que l'utilisateur n'est pas connu de votre système :
    1. Envoyez une demande de création de compte Google Play d'entreprise en appelant Users.insert avec les valeurs des nouveaux accountIdentifier, displayName et accountType.
      • Votre système doit créer le accountIdentifier. L'identifiant de compte doit être une valeur unique dans votre système. N'utilisez pas d'informations permettant d'identifier personnellement l'utilisateur pour l'identifiant du compte.
      • Le displayName s'affiche dans le sélecteur de compte du Google Play Store et doit avoir une certaine signification pour l'utilisateur (mais pas des informations personnelles le concernant). Par exemple, le nom peut inclure le nom de l'organisation ou un nom générique lié à 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 les valeurs accountIdentifier et userId dans votre datastore.
    4. Appelez Users.generateAuthenticationToken avec userId et enterpriseId. Google Play renvoie un jeton d'authentification qui peut être utilisé une seule fois, et qui doit être utilisé dans les minutes qui suivent.
    5. Transférez en toute sécurité le jeton d'authentification à 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 depuis le profil professionnel ou l'appareil.

Comptes administrateur

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

Enterprises.get et Enterprises.completeSignup renvoient une liste d'adresses e-mail d'administrateur associées à une entreprise (entreprises avec des comptes Google Play d'entreprise uniquement).

Gérer les cycles de vie des comptes

Dans un déploiement de comptes Google Play d'entreprise, vous êtes responsable des cycles de vie des utilisateurs et des comptes d'appareil, 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 impliquant votre application DPC et votre console EMM. Pour obtenir des instructions, consultez la méthode des comptes Google Play gérés.

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

Pour supprimer un compte, appelez Users.delete.

Les administrateurs ne peuvent pas supprimer de comptes individuels, mais ils peuvent supprimer une entreprise avec des comptes Google Play d'entreprise. L'appareil et les comptes utilisateur associés à l'entreprise finissent alors par être supprimés, comme décrit dans la section Se désinscrire, réenregistrer, supprimer.

Expiration du compte

Il peut arriver que des comptes ou leurs jetons expirent. Cela peut se produire pour plusieurs raisons:

  • Le jeton d'authentification obtenu pour ajouter le compte à l'appareil a expiré.
  • Le compte ou l'entreprise ont été supprimés.
  • Pour les comptes d'appareil, le compte a été ajouté à un nouvel appareil et est donc désactivé sur l'ancien appareil.
  • Des contrôles automatiques s'appliquent en cas d'utilisation abusive.

Dans la plupart des cas (sauf si l'EMM transfère intentionnellement un compte d'appareil vers un nouvel appareil), il est recommandé d'utiliser l'API EMM Play 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, actualisez le jeton, ou si l'erreur ne peut pas être récupérée, réinitialisez ou désenregistrez 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 d'entreprise n'est plus valide sur un appareil, le DPC reçoit une annonce avec l'action suivante :

    com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED

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

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

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


Comptes Google

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

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

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

Après la synchronisation initiale, mais avant que les applications ne soient distribuées sur l'appareil d'un utilisateur, celui-ci doit activer son compte Google, comme décrit dans la section Activer les comptes sur les 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 effectuer cette opération au nom de l'organisation à l'aide de GCDS, si l'organisation 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-même pouvez utiliser l'outil G Suite Password Sync (GSPS) avec GCDS.

Pour obtenir des instructions GCDS pour les administrateurs, consultez la page Préparer votre domaine G Suite pour la synchronisation.

API Google Directory

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

  • Utiliser l'API Directory pour la synchronisation basée uniquement sur l'annuaire 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 de compte Google, telles que les noms d'utilisateur (mais pas les mots de passe) auprès 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 précisément 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 de compte dans la documentation de l'API Directory.

  • Utiliser l'API Directory pour la synchronisation des annuaires et (facultative) des mots de passe. 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 de compte Google. Vous pouvez mettre à jour ces informations et les synchroniser avec votre propre base de données. Vous pouvez être entièrement ou partiellement responsable 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 API Directory: comptes utilisateur.

Scénarios liés aux comptes Google

Quelques scénarios typiques de provisionnement d'identité de comptes Google sont décrits ci-dessous.

Scénario 1: le client est responsable des cycles de vie des comptes

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

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

Vous obtenez les informations de compte utilisateur à partir de l'annuaire LDAP de l'organisation et les corrolisez avec les données du compte Google obtenues auprès de Google via l'API Google Directory.

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

Dans ce cas, on a :

  • 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.
  • L'API Google Directory vous permet d'obtenir des informations de base sur les comptes des utilisateurs de vos clients. (Les informations disponibles sont les informations non accessibles en écriture renvoyées par une requête Users.get.) Ces informations vous permettent de 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 unidirectionnelle afin de renseigner les comptes Google des utilisateurs. (L'organisation utilise probablement également GCDS pour sa synchronisation en cours une fois le provisionnement des identités terminé.) Si vous le souhaitez, l'organisation peut également utiliser l'outil GSPS pour synchroniser non seulement les noms d'utilisateur, mais également les mots de passe.

Scénario 2: EMM 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 des comptes Google au nom du client et vous êtes responsable des cycles de vie des comptes utilisateur.

Par exemple, lorsque des informations utilisateur changent dans l'annuaire 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, on a :

  • Vous disposez d'un accès en lecture/écriture aux comptes Google.
  • Votre base de données acquiert des noms de comptes Google et des noms d'utilisateur LDAP (et éventuellement des hachages de mots de passe).
  • Vous utilisez l'API Google Directory pour le compte de votre client afin de lire et d'écrire les informations de compte des utilisateurs de l'organisation. (Les informations disponibles sont les informations non accessibles en écriture renvoyées par une requête Users.get.) Ces informations vous permettent de 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 SSO basées sur SAML

Lors d'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. Les noms de comptes Google vous permettent de vérifier l'existence des comptes Google des utilisateurs, ce qui est nécessaire à l'authentification des utilisateurs lorsqu'ils se connectent à leurs appareils. Par exemple, SAML peut être utilisé dans le scénario 2. Pour savoir comment configurer cette fonctionnalité, consultez Configurer l'authentification unique (SSO) pour les comptes G Suite.

Activer des comptes sur les 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 des appareils Google Play Accounts, l'outil 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 d'entreprise.
  • Dans un déploiement de comptes Google, votre DPC guide l'utilisateur pour qu'il saisisse les identifiants de connexion de son compte Google. Normalement, 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 IdP pour l'authentification. Le compte Google de l'utilisateur est alors activé, un ID d'appareil unique est généré, et l'identité du compte Google de l'utilisateur et l'ID de son appareil sont liés.