Aprovisionar cuentas de usuario

El aprovisionamiento de identidad (o aprovisionamiento de cuentas) es el proceso de configurar cuentas y establecer conexiones entre los tres sistemas y, en algunos casos, establecer conexiones entre los usuarios y sus dispositivos.

En un entorno empresarial de Android, hasta tres sistemas diferentes pueden contener información de la cuenta:

  • El directorio de usuarios de la organización es la fuente definitiva de información sobre los usuarios.
  • Tú (como proveedor de soluciones de EMM) debes mantener al menos un directorio mínimo de los usuarios de la organización.
  • Google conserva cierta información sobre las cuentas de Google Play administradas y las Cuentas de Google para proporcionar administración de apps a través de Google Play.

Un recurso Users representa una cuenta asociada a una empresa. La cuenta puede ser específica de un dispositivo o estar asociada con una persona que tiene varios dispositivos (teléfono celular, tablet, etc.) y usa la cuenta en todos ellos. La cuenta puede proporcionar acceso solo a Google Play administrado o a otros servicios de Google, según cómo configures la empresa de tu cliente:

  • Las Cuentas de Google Play administradas proporcionan un medio transparente para que las empresas creen cuentas de usuarios o dispositivos automáticamente a través de su proveedor de soluciones de administración de movilidad empresarial (EMM). Estas cuentas solo proporcionan acceso a Google Play administrado.

  • Las Cuentas de Google son cuentas existentes administradas por Google y requieren sincronización con las fuentes de la Cuenta de Google.

Tabla 1: Campos y métodos de la API de usuarios

 Cuentas de Google Play administradoCuentas administradas por Google
Campo
id
kind
accountIdentifierUn identificador único que creas y asignas al ID (userId) que muestra Google Play. No uses información de identificación personal (PII).Sin establecer
accountTypedeviceAccount, userAccountuserAccount
displayNameEs el nombre que muestras en los elementos de la IU, como en Google Play. No uses información de identificación personal.Sin establecer
managementTypeemmManagedgoogleManaged, emmManaged
primaryEmailSin establecerEste campo es la clave primaria mediante la cual administras la sincronización de las cuentas de dominio administradas por Google con las cuentas de usuario en tu sistema.
Métodos
borrar
generateAuthenticationToken
generateToken
get
getAvailableProductSet
insert
list
revokeToken
setAvailableProductSet
update

Cuentas de Google Play administrado

Existen dos tipos de cuentas de Google Play administrado:

Cuenta de usuario
Proporciona acceso a un solo usuario a Google Play administrado desde todos sus dispositivos. Debes aprovisionar cuentas de usuario para tus usuarios, ya que ellos no tienen las credenciales para agregar cuentas de Google Play administradas.
Para crear una cuenta de usuario, llama a Users.insert. Configura el tipo de cuenta como userType y un accountIdentifier, que hace referencia de forma única al usuario dentro de la empresa.
Práctica recomendada: No uses la misma cuenta en más de 10 dispositivos.
Cuenta del dispositivo
Proporciona acceso a Google Play administrado desde un solo dispositivo. Si se emitió un token de autenticación para una cuenta de dispositivo, la solicitud nueva de un token de autenticación para esa cuenta de dispositivo desactiva el token anterior. Cada dispositivo debe tener sus propias licencias para las apps.
Para crear una cuenta de dispositivo, llama a Users.insert y establece el tipo de cuenta en deviceType.

Tú creas y mantienes una asignación entre las identidades del usuario o del dispositivo y las Cuentas de Google Play administradas correspondientes, y administras las cuentas durante su ciclo de vida. La organización no necesita ningún control directo sobre estas Cuentas de Google Play administradas, ya que existen solo para la administración de aplicaciones.

Requisitos para consolas y servidores de EMM

Las cuentas de Google Play administradas se crean a pedido, de manera programática, con las APIs de EMM de Google Play y las APIs del framework de Android en todos los componentes de tu solución de EMM (consola de EMM, servidor de EMM y DPC). Estos componentes interactúan en el tiempo de ejecución para crear una cuenta de usuario y aprovisionar el perfil de trabajo en el dispositivo de destino. Tu consola o servidor de EMM debe hacer lo siguiente:

  • Proporciona un mecanismo para crear identificadores de cuenta anónimos únicos (el campo accountIdentifier) que se usarán en la llamada a Users.insert. Por ejemplo, puedes usar algún valor interno para el usuario ("sanjeev237389") o un número de etiqueta de recurso críptico ("asset#44448"). Evita usar información de identificación personal (PII) para el identificador de cuenta.

  • Almacena la asignación entre el userId (que se muestra de la llamada a insert) y el accountIdentifier que seleccionas.

Si quieres conocer los requisitos para tu DPC, consulta Cómo compilar un controlador de política de dispositivo.

Crear una cuenta de usuario de Google Play administrado

  1. Un usuario accede a tu DPC con credenciales corporativas (por lo general).
  2. El DPC solicita detalles sobre el usuario desde la consola o el servidor de EMM. Suponiendo que el usuario es desconocido para tu sistema:
    1. Envía una solicitud de una nueva cuenta de Google Play administrada llamando a Users.insert con los valores de accountIdentifier, displayName y accountType nuevas.
      • Tu sistema debe crear el accountIdentifier. El identificador de cuenta debe ser un valor único en todo el sistema. No uses PII para el identificador de cuenta.
      • El displayName se muestra en el selector de cuentas de Google Play Store y debe tener algún significado para el usuario (pero no PII sobre el usuario). Por ejemplo, el nombre podría incluir el nombre de la organización o un nombre genérico relacionado con el EMM.
      • Establece accountType en userAccount o deviceAccount. Un userAccount se puede usar en varios dispositivos, mientras que un deviceAccount es específico para uno solo. El accountType especificado puede ser deviceType o userType.
      • Establece la managementType en emmManaged.
    2. Google Play procesa la solicitud, crea la cuenta y muestra un userId.
    3. Almacena la asignación entre accountIdentifier y userId en tu almacén de datos.
    4. Llama a Users.generateAuthenticationToken con userId y enterpriseId. Google Play muestra un token de autenticación que puede usarse una vez y que debe usarse en unos minutos.
    5. Reenvía de manera segura el token de autenticación a tu DPC.
  3. El DPC aprovisiona el perfil de trabajo y agrega la cuenta a este o al dispositivo.
  4. El usuario puede acceder a Google Play administrado desde el perfil de trabajo o el dispositivo.

Cuentas de administrador

Cuando un administrador crea una empresa con cuentas de Google Play administradas, la Cuenta de Google que usa no puede ser una cuenta de G Suite. La cuenta que use se convierte en propietaria de la empresa, y el propietario puede agregar más propietarios y administradores en Google Play Console administrado.

Tanto Enterprises.get como Enterprises.completeSignup muestran una lista de direcciones de correo electrónico de administrador que están asociadas a una empresa (solo empresas con cuentas de Google Play administradas).

Cómo administrar los ciclos de vida de una cuenta

En una implementación de cuentas de Google Play administradas, eres responsable de los ciclos de vida de las cuentas de usuario y dispositivo, lo que significa que creas, actualizas y borras estas cuentas.

Las cuentas se crean durante el aprovisionamiento del dispositivo, un proceso que involucra a la app de DPC y la consola de EMM. Para obtener instrucciones, consulta el método de cuentas de Google Play administradas.

Para cambiar la información de una cuenta, llama a Users.update.

Para borrar una cuenta, llama a Users.delete.

Los administradores no pueden borrar cuentas individuales, pero pueden borrar una empresa con cuentas de Google Play administradas. Cuando lo hacen, el dispositivo y las cuentas de usuario asociados con la empresa se borran, como se describe en Dar de baja, volver a inscribirme o borrar.

Vencimiento de la cuenta

En ocasiones, las cuentas o sus tokens vencen, lo que puede suceder por varios motivos:

  • Venció el token de autenticación que se obtuvo para agregar la cuenta al dispositivo.
  • Se borró la cuenta o empresa.
  • En el caso de las cuentas de dispositivo, la cuenta se agregó a un dispositivo nuevo y, por lo tanto, está inhabilitada en el dispositivo anterior.
  • Se activan las verificaciones automáticas de abuso.

En la mayoría de los casos (a menos que el EMM esté moviendo intencionalmente una cuenta de dispositivo a un dispositivo nuevo), la práctica recomendada es usar la API de EMM de Play para solicitar un nuevo token desde el servidor de EMM, tomar nota del estado de la cuenta y la empresa y cualquier error que se muestre, y luego tomar las medidas adecuadas en el dispositivo. Por ejemplo, actualiza el token o, si el error no se puede recuperar, restablece o da de baja el dispositivo.

La versión 9.0.00 de los Servicios de Google Play notifica a tu DPC que la cuenta venció mediante la acción de emisión:

  1. Cuando la cuenta de Google Play administrada no es válida en un dispositivo, el DPC recibe una transmisión con la siguiente acción:

    com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED

    El intent de transmisión contiene un Parcelable adicional con el nombre account, que es el objeto Account de la cuenta invalidada.

  2. El DPC verifica Account#name con el servidor de EMM para identificar la cuenta invalidada.

  3. El DPC solicita credenciales nuevas o una cuenta nueva, siguiendo el mismo flujo que se usó para aprovisionar el dispositivo inicialmente.


Cuentas de Google

Para las organizaciones que usan Cuentas de Google, las cuentas de usuario en una solución de EMM duplican las cuentas de usuario existentes asociadas con otro servicio de Google (por ejemplo, G Suite). Estas cuentas son googleManaged (Tabla 1) porque los servicios de backend de Google son la fuente de creación y de la información sobre la cuenta.

Como EMM, puedes proporcionar mecanismos en tu consola para facilitar la creación y sincronización continua de cuentas de usuario almacenadas en tu sistema con las fuentes de sus cuentas de dominio de Google mediante herramientas como Google Cloud Directory Sync (GCDS) y la API de Directory del SDK de Admin de Google para obtener una descripción general de varios enfoques). El modelo de identidad de dominio administrado por Google requiere que la cuenta de usuario exista en el contexto de tu solución (consola de EMM, servidor de EMM, quizás en un almacén de datos) antes de que se pueda aprovisionar en cualquiera de los dispositivos del usuario en el contexto de un perfil de trabajo.

Durante el aprovisionamiento de identidad, el dominio administrado por Google de la organización se propaga con cuentas de usuario. En algunos casos, las identidades en línea existentes de los usuarios (por ejemplo, sus cuentas de Microsoft Exchange) se sincronizan con sus Cuentas de Google.

Después de la sincronización inicial, pero antes de que las apps se distribuyan al dispositivo de un usuario, este debe activar su Cuenta de Google, como se describe en Cómo activar cuentas en dispositivos. Esta activación permite que el dispositivo acceda a Google Play administrado.

Sincroniza las cuentas de los clientes

En una implementación de Cuentas de Google, la organización puede usar la herramienta GCDS para sincronizar los datos en su dominio de G Suite con los datos en su directorio LDAP. Como alternativa, puedes usar GCDS para hacerlo en nombre de la organización, si esta te otorga acceso.

La herramienta GCDS llama a la API de directorio de Google y sincroniza los nombres de usuario, pero no las contraseñas.

Si la organización usa Microsoft Active Directory y desea mantener las contraseñas de G Suite de los usuarios sincronizadas con sus contraseñas de Active Directory, ellos (o tú) pueden usar la herramienta G Suite Password Sync (GSPS) con GCDS.

Si deseas obtener instrucciones de GCDS para administradores, consulta Prepara tu dominio de G Suite para la sincronización.

API de directorio de Google

En una implementación de Cuentas de Google, puedes usar la API de Google Directory para sincronizar directorios activos, contraseñas o ambos:

  • Usa la API de Directory para la sincronización solo del directorio. Si tienes acceso de solo lectura al dominio de Google administrado de la organización, puedes usar la API de Google Directory para obtener información de la Cuenta de Google, como nombres de usuario (pero no contraseñas) de Google. Debido a que no puedes escribir datos en las Cuentas de Google de los usuarios, la organización es completamente responsable de los ciclos de vida de las cuentas.

    La Situación 1 y las situaciones de autenticación de SSO basada en SAML describen esta situación con más detalle.

    Para obtener información sobre cómo usar la API de Directory de esta manera, consulta Recupera todos los usuarios de la cuenta en la documentación de la API de Directory.

  • Usa la API de Directory para la sincronización de directorios y de contraseñas opcional. Si tienes acceso de lectura y escritura al dominio de Google administrado de la organización, puedes usar la API de Google Directory para obtener nombres de usuario, contraseñas y otra información de la Cuenta de Google. Puedes actualizar esta información y sincronizarla con tu propia base de datos, y es posible que tengas responsabilidad total o parcial del ciclo de vida de la cuenta, según la solución que ofrezcas a tu cliente.

    En la situación 2, se describe esta situación con más detalle.

    Consulta la guía para desarrolladores de la API de Directory: Cuentas de usuario si quieres obtener más información sobre el uso de la API de Directory para administrar información de la cuenta de usuario.

Casos relacionados con las Cuentas de Google

A continuación, se describen algunas situaciones típicas de aprovisionamiento de identidad de Cuentas de Google.

Situación 1: El cliente es responsable del ciclo de vida de la cuenta

Usa la API de Directory (con acceso de solo lectura) y GCDS

En esta situación, tu cliente crea y mantiene Cuentas de Google para sus usuarios.

Obtienes la información de la cuenta de usuario del directorio LDAP de la organización y la correlacionas con los datos de la Cuenta de Google que obtienes de Google a través de la API de Directory de Google.

La organización es plenamente responsable del ciclo de vida de la cuenta. Por ejemplo, cuando se crea una Cuenta de Google nueva, la organización agrega al usuario a su directorio LDAP. La próxima vez que sincronices la base de datos con el directorio LDAP, la base de datos recibirá información sobre este usuario nuevo.

En este caso, ocurre lo siguiente:

  • Tienes acceso de solo lectura a las Cuentas de Google.
  • Tu base de datos adquiere nombres de Cuentas de Google, pero no nombres de usuario ni contraseñas de LDAP.
  • Utiliza la API de directorio de Google para obtener información básica de la cuenta de los usuarios de tus clientes. (La información disponible es la información que no se puede escribir que muestra una solicitud Users.get). Usa esta información para verificar que existan Cuentas de Google de los usuarios a fin de que puedan autenticarse en sus dispositivos.
  • Tu cliente usa la herramienta GCDS para realizar una sincronización unidireccional a fin de propagar las Cuentas de Google de los usuarios. (Es probable que la organización también use GCDS para su propia sincronización continua una vez que se complete el aprovisionamiento de identidad). De manera opcional, la organización también puede usar la herramienta GSPS para sincronizar no solo los nombres de usuario, sino también las contraseñas.

Situación 2: EMM responsable del ciclo de vida de la cuenta

Usa la API de Directory con acceso de lectura y escritura

En esta situación, tú controlas el proceso de crear Cuentas de Google en nombre de tu cliente y eres responsable de los ciclos de vida de las cuentas de los usuarios.

Por ejemplo, cuando la información del usuario cambia en el directorio LDAP de la organización, eres responsable de actualizar la Cuenta de Google del usuario. No se usa GCDS en este caso.

En este caso, ocurre lo siguiente:

  • Tienes acceso de lectura y escritura a las Cuentas de Google.
  • Tu base de datos adquiere nombres de Cuentas de Google y nombres de usuario LDAP (y, de forma opcional, hashes de contraseñas).
  • Usas la API de Google Directory en nombre de tu cliente para leer y escribir información de la cuenta de los usuarios de la organización. (La información disponible es la información que no se puede escribir que muestra una solicitud Users.get). Usa esta información para verificar que existan Cuentas de Google de los usuarios a fin de que puedan autenticarse en sus dispositivos.
  • No se usa la herramienta GCDS.

Situaciones de autenticación de SSO basada en SAML

En una implementación de Cuentas de Google, tú o tu cliente pueden usar el Lenguaje de marcado para confirmación de seguridad (SAML) con un proveedor de identidad (IdP) para autenticar la Cuenta de Google asociada con cada usuario. Usa los nombres de las Cuentas de Google para verificar que existen las Cuentas de Google de los usuarios, lo que es necesario para la autenticación de usuarios cuando estos acceden a sus dispositivos. Por ejemplo, SAML podría usarse en la situación 2. Para obtener detalles sobre cómo realizar esta configuración, consulta Cómo configurar el inicio de sesión único (SSO) para las cuentas de G Suite.

Activa cuentas en dispositivos

Para que las apps se distribuyan al dispositivo de un usuario a través de Google Play administrado, el usuario debe acceder al dispositivo durante el aprovisionamiento del dispositivo:

  • En el aprovisionamiento de dispositivos de Cuentas de Google Play administradas, tu DPC guía al usuario para que acceda con credenciales que acepta la consola de EMM, que por lo general son credenciales de correo electrónico corporativas.
  • En una implementación de Cuentas de Google, tu DPC guía al usuario para que ingrese las credenciales de acceso de su Cuenta de Google. Por lo general, estas credenciales coinciden con las que los usuarios acceden a su dominio corporativo cuando se sincronizan con GCDS o GSPS, o cuando una organización usa un IdP para la autenticación. Esto activa la Cuenta de Google del usuario, genera un ID de dispositivo único y vincula la identidad de su Cuenta de Google con el ID de dispositivo de su dispositivo.