Provisionar contas de usuário

O provisionamento de identidade (ou provisionamento de conta) é o processo de configuração de contas, de conexões entre os três sistemas e, em alguns casos, a definição de conexões entre usuários e os dispositivos deles.

Em um ambiente empresarial do Android, até três sistemas diferentes contêm informações da conta:

  • O diretório de usuários da organização é a fonte definitiva de informações sobre os usuários.
  • O provedor da solução de EMM precisa manter pelo menos um diretório mínimo com os usuários da organização.
  • O Google mantém algumas informações sobre as contas do Google Play gerenciado e as Contas do Google para fornecer gerenciamento de apps pelo Google Play.

Um recurso Users representa uma conta associada a uma empresa. Ela pode ser específica de um dispositivo ou associada a um indivíduo que tem vários dispositivos (smartphone, tablet e assim por diante) e usa a conta em todos eles. A conta pode fornecer acesso somente ao Google Play gerenciado ou a outros serviços do Google, dependendo de como você configurar a empresa do seu cliente:

  • As contas do Google Play gerenciado oferecem um meio transparente para as empresas criarem contas de usuários ou dispositivos automaticamente pelo provedor de soluções de gerenciamento de mobilidade empresarial (EMM, na sigla em inglês). Essas contas fornecem acesso somente ao Google Play gerenciado.

  • As Contas do Google são contas gerenciadas pelo Google e exigem sincronização com as origens da Conta do Google.

Tabela 1: campos e métodos da API de usuários

 Contas do Google Play gerenciadoContas gerenciadas pelo Google
Campo
id
kind
accountIdentifierUm identificador exclusivo que você cria e mapeia para o ID (userId) retornado do Google Play. Não use informações de identificação pessoal (PII, na sigla em inglês).Não definido
accountTypedeviceAccount e userAccountuserAccount
displayNameO nome exibido em itens de IU, como no Google Play. Não use informações de identificação pessoal.Não definido
managementTypeemmManagedgoogleManaged, emmManaged
primaryEmailNão definidoEsse campo é a chave primária que você usa para gerenciar a sincronização de contas de domínio gerenciadas pelo Google com contas de usuários no seu sistema.
Métodos
excluir
generateAuthenticationToken
generateToken
get
getAvailableProductSet
inserir
list
revokeToken
setAvailableProductSet
update

Contas do Google Play gerenciado

Há dois tipos de contas do Google Play gerenciado:

Conta de usuário
Permite que um único usuário acesse o Google Play gerenciado em todos os dispositivos. Você precisa provisionar contas de usuário para seus usuários. Eles não têm as credenciais para adicionar contas do Google Play gerenciado.
Para criar uma conta de usuário, chame Users.insert. Defina o tipo de conta como userType e defina um accountIdentifier, que faz referência exclusivamente ao usuário na empresa.
Prática recomendada: não use a mesma conta em mais de 10 dispositivos.
Conta de dispositivo
Concede acesso ao Google Play gerenciado em um único dispositivo. Se um token de autenticação tiver sido emitido para uma conta de dispositivo, uma nova solicitação de token de autenticação para essa conta desativará o token anterior. Cada dispositivo deve ter as próprias licenças para apps.
Para criar uma conta de dispositivo, chame Users.insert e defina o tipo de conta como deviceType.

Crie e mantenha um mapeamento entre as identidades do usuário ou do dispositivo e as contas do Google Play gerenciado correspondentes e gerencie as contas durante o ciclo de vida. A organização não precisa de nenhum controle direto sobre essas contas do Google Play gerenciado, já que elas existem exclusivamente para gerenciamento de aplicativos.

Requisitos para os consoles e servidores de EMM

As contas do Google Play gerenciado são criadas sob demanda de maneira programática, usando as APIs de EMM do Google Play e as APIs de framework do Android em todos os componentes da solução de EMM (console de EMM, servidor de EMM e DPC). Esses componentes interagem no tempo de execução para criar uma conta de usuário e provisionar o perfil de trabalho no dispositivo de destino. Seu console ou servidor de EMM precisa:

  • Fornecer um mecanismo para criar identificadores anônimos únicos de conta (o campo accountIdentifier) para usar na chamada para Users.insert. Por exemplo, é possível usar um valor interno para o usuário ("sanjeev237389") ou um número de tag de recurso criptografado ("asset#44448"). Evite usar informações de identificação pessoal (PII) para o identificador da conta.

  • Armazene o mapeamento entre o userId (retornado da chamada insert) e o accountIdentifier selecionado.

Para ver os requisitos do seu DPC, consulte Criar um controlador de política de dispositivo.

Criar uma conta de usuário do Google Play gerenciado

  1. Um usuário faz login no seu DPC usando, geralmente, credenciais corporativas.
  2. O DPC solicita detalhes sobre o usuário ao console ou ao servidor de EMM. Supondo que o sistema não conheça o usuário:
    1. Envie a solicitação de nova conta do Google Play gerenciado chamando Users.insert com os valores dos novos accountIdentifier, displayName e accountType.
      • O sistema precisa criar o accountIdentifier. O identificador da conta precisa ser um valor exclusivo em todo o sistema. Não use PII no identificador da conta.
      • O displayName é exibido no seletor de contas da Google Play Store e precisa ter algum significado para o usuário, mas não PII sobre ele. Por exemplo, o nome pode incluir o nome da organização ou um nome genérico relacionado ao EMM.
      • Defina accountType como userAccount ou deviceAccount. Uma userAccount pode ser usada em vários dispositivos, enquanto uma deviceAccount é específica para um único dispositivo. O accountType especificado pode ser deviceType ou userType.
      • Defina managementType como emmManaged.
    2. O Google Play processa a solicitação, cria a conta e retorna um userId.
    3. Armazene o mapeamento entre accountIdentifier e userId no seu repositório de dados.
    4. Chame Users.generateAuthenticationToken com userId e enterpriseId. O Google Play retorna um token de autenticação que pode ser usado uma vez e dentro de alguns minutos.
    5. Encaminhe com segurança o token de autenticação para o seu DPC.
  3. O DPC provisiona o perfil de trabalho e adiciona a conta ao perfil ou ao dispositivo de trabalho.
  4. O usuário pode acessar o Google Play gerenciado no perfil de trabalho ou no dispositivo.

Contas de administrador

Quando um administrador cria uma empresa com contas do Google Play gerenciado, a Conta do Google que ele usa não pode ser uma conta do G Suite. A conta que eles usam se torna uma proprietária da empresa, e o proprietário pode adicionar mais proprietários e administradores ao Google Play Console gerenciado.

Enterprises.get e Enterprises.completeSignup retornam uma lista de endereços de e-mail de administrador associados a uma empresa (somente empresas com contas gerenciadas do Google Play).

Gerenciar os ciclos de vida da conta

Em uma implantação de contas do Google Play gerenciado, você é responsável pelos ciclos de vida da conta do usuário e do dispositivo, o que significa que você cria, atualiza e exclui essas contas.

Você cria as contas durante o provisionamento de dispositivo, um processo que envolve o app de DPC e o console de EMM. Para instruções, consulte o método "Contas do Google Play gerenciado.

Para mudar as informações de uma conta, chame Users.update.

Para excluir uma conta, chame Users.delete.

Os administradores não podem excluir contas individuais, mas podem excluir uma empresa com contas gerenciadas do Google Play. Quando eles fazem isso, as contas de dispositivo e de usuário associadas à empresa são excluídas, conforme descrito em Cancelar inscrição, reinscrever-se, excluir.

Expiração da conta

Às vezes, as contas ou os tokens expiram, o que pode acontecer por vários motivos:

  • O token de autenticação recebido para adicionar a conta ao dispositivo expirou.
  • a conta ou empresa tiver sido excluída;
  • Em contas de dispositivos, a conta foi adicionada a um novo dispositivo e, portanto, desativada no dispositivo antigo.
  • Verificações automáticas de abuso são acionadas.

Na maioria dos casos, a menos que o EMM esteja movendo intencionalmente uma conta de dispositivo para um novo dispositivo, a prática recomendada é usar a API Play EMM para solicitar um novo token do servidor de EMM, observar o estado da conta e da empresa e todos os erros retornados e tomar as medidas adequadas no dispositivo. Por exemplo, atualize o token ou, se o erro não puder ser recuperado, redefina ou cancele a inscrição do dispositivo.

O Google Play Services versão 9.0.00 notifica seu DPC que a conta expirou usando a ação de transmissão:

  1. Quando a conta do Google Play gerenciado é invalidada em um dispositivo, o DPC recebe uma transmissão com a seguinte ação:

    com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED

    A intent de transmissão contém um extra Parcelable com o nome account, que é o objeto Account da conta invalidada.

  2. O DPC verifica Account#name com o servidor de EMM para identificar a conta invalidada.

  3. O DPC solicita novas credenciais ou uma nova conta, seguindo o mesmo fluxo usado para provisionar o dispositivo inicialmente.


Contas do Google

Nas organizações que usam Contas do Google, as contas de usuário em uma solução de EMM espelham as contas de usuário associadas a outro serviço do Google (por exemplo, o G Suite). Essas contas são googleManaged (Tabela 1) porque os serviços de back-end do Google são a fonte para a criação e as informações sobre a conta.

Como um EMM, você pode fornecer mecanismos no console para facilitar a criação e a sincronização contínua de contas de usuário mantidas no sistema com as origens de contas de domínio do Google usando ferramentas como o Google Cloud Directory Sync (GCDS) e a API Google Admin SDK Directory para ter uma visão geral das várias abordagens. O modelo de identidade de domínio gerenciado pelo Google exige que a conta de usuário exista no contexto da solução (console de EMM, servidor de EMM, talvez em um repositório de dados) antes que ela possa ser provisionada em qualquer dispositivo do usuário no contexto de um perfil de trabalho.

Durante o provisionamento de identidade, o domínio da organização gerenciado pelo Google é preenchido com contas de usuário. Em alguns casos, as identidades on-line existentes dos usuários (por exemplo, as contas do Microsoft Exchange) são sincronizadas com as Contas do Google.

Após a sincronização inicial, mas antes que os apps sejam distribuídos para o dispositivo do usuário, o usuário precisa ativar a Conta do Google, conforme descrito em Ativar contas em dispositivos. Essa ativação permite que o dispositivo acesse o Google Play gerenciado.

Sincronizar contas de clientes

Em uma implantação de Contas do Google, a organização pode usar a ferramenta GCDS para sincronizar os dados no domínio do G Suite com os dados no diretório LDAP. Também é possível usar o GCDS para fazer isso em nome da organização, se ela permitir o acesso.

A ferramenta GCDS chama a API Google Directory e sincroniza nomes de usuário, mas não senhas.

Se a organização usar o Microsoft Active Directory e quiser manter as senhas do G Suite dos usuários sincronizadas com as do Active Directory, ela ou você poderá usar a ferramenta G Suite Password Sync (GSPS) com o GCDS.

Para instruções do GCDS para administradores, consulte Preparar seu domínio do G Suite para a sincronização.

API Google Directory

Em uma implantação de Contas do Google, é possível usar a API Google Directory para sincronizar diretórios ativos, senhas ou ambos:

  • Usar a API Directory para sincronização somente de diretórios. Se você tiver acesso somente leitura ao domínio gerenciado do Google da organização, use a API Google Directory para receber informações da Conta do Google, como nomes de usuário (mas não senhas) do Google. Como não é possível gravar dados nas Contas do Google dos usuários, a organização é totalmente responsável pelos ciclos de vida da conta.

    No Cenário 1 e nos cenários de autenticação SSO com base em SAML, essa situação é descrita mais detalhadamente.

    Para mais informações sobre como usar a API Directory dessa maneira, consulte Recuperar todos os usuários da conta na documentação da API Directory.

  • Usar a API Directory para sincronização de diretórios e de senhas opcional. Se você tiver acesso de leitura e gravação ao domínio gerenciado do Google da organização, poderá usar a API Google Directory para receber nomes de usuário, senhas e outras informações da Conta do Google. É possível atualizar e sincronizar essas informações com seu próprio banco de dados. Além disso, você pode ter responsabilidade total ou parcial pelos ciclos de vida da conta, dependendo da solução oferecida ao cliente.

    O cenário 2 descreve melhor essa situação.

    Para saber mais sobre como usar a API Directory para gerenciar informações de contas de usuário, consulte o guia para desenvolvedores API Directory: contas de usuário.

Cenários relacionados às Contas do Google

Alguns cenários típicos de provisionamento de identidade das Contas do Google são descritos abaixo.

Cenário 1: o cliente é responsável pelos ciclos de vida da conta

use a API Directory (com acesso somente leitura) e o GCDS;

Nesse cenário, seu cliente cria e mantém Contas do Google para os usuários.

Você recebe informações da conta de usuário do diretório LDAP da organização e correlaciona essas informações com os dados da Conta do Google recebidos do Google por meio da API Directory do Google.

A organização é totalmente responsável pelos ciclos de vida da conta. Por exemplo, quando uma nova Conta do Google é criada, a organização adiciona o usuário ao diretório LDAP. Na próxima vez que você sincronizar seu banco de dados com o diretório LDAP, ele vai receber informações sobre esse novo usuário.

Nesse caso:

  • Você tem acesso somente leitura às Contas do Google.
  • O banco de dados adquire nomes de Contas do Google, mas nenhum nome de usuário ou senha LDAP.
  • Use a API Google Directory para acessar informações básicas da conta dos usuários do seu cliente. As informações disponíveis são as não graváveis retornadas por uma solicitação Users.get. Use essas informações para verificar se as Contas do Google dos usuários existem, de modo que os usuários possam se autenticar nos dispositivos deles.
  • O cliente usa a ferramenta GCDS para fazer uma sincronização unidirecional e preencher as Contas do Google dos usuários. (É provável que a organização também use o GCDS para fazer a própria sincronização contínua após a conclusão do provisionamento de identidade.) Opcionalmente, a organização também pode usar a ferramenta GSPS para sincronizar não apenas nomes de usuários, mas também senhas.

Cenário 2: o EMM responsável pelos ciclos de vida da conta

Como usar a API Directory com
  acesso de leitura e gravação

Nesse cenário, você lida com o processo de criação de Contas do Google em nome do cliente e é responsável pelos ciclos de vida das contas dos usuários.

Por exemplo, quando as informações do usuário são alteradas no diretório LDAP da organização, você é responsável por atualizar a Conta do Google do usuário. O GCDS não é usado nesse cenário.

Nesse caso:

  • Você tem acesso de leitura/gravação às Contas do Google.
  • O banco de dados adquire nomes de Contas do Google e nomes de usuário LDAP (e, opcionalmente, hashes de senha).
  • Use a API Google Directory em nome do seu cliente para ler e gravar as informações da conta dos usuários da organização. As informações disponíveis são as não graváveis retornadas por uma solicitação Users.get. Use essas informações para verificar se as Contas do Google dos usuários existem, de modo que os usuários possam se autenticar nos dispositivos deles.
  • A ferramenta GCDS não é usada.

Cenários de autenticação SSO baseada em SAML

Em uma implantação de Contas do Google, você ou seu cliente podem usar a Linguagem de marcação para autorização de segurança (SAML) com um provedor de identidade (IdP) para autenticar a Conta do Google associada a cada usuário. Use os nomes da Conta do Google como verificação de que as Contas do Google dos usuários existem, o que é necessário para a autenticação do usuário quando ele faz login nos dispositivos. Por exemplo, o SAML pode ser usado no cenário 2. Para detalhes sobre como fazer essa configuração, consulte Configurar o Logon único (SSO) em contas do G Suite.

Ativar contas em dispositivos

Para que os apps sejam distribuídos para um dispositivo de usuário pelo Google Play gerenciado, o usuário precisa fazer login no dispositivo durante o provisionamento:

  • No provisionamento de dispositivos com contas do Google Play gerenciado, o DPC orienta o usuário a fazer login usando credenciais aceitas pelo console de EMM, normalmente, credenciais de e-mail corporativo.
  • Em uma implantação de Contas do Google, o DPC orienta o usuário a inserir as credenciais de login da Conta do Google. Normalmente, essas credenciais correspondem àquelas usadas pelos usuários para fazer login no domínio corporativo quando são sincronizadas com o GCDS ou o GCDS ou quando uma organização usa um IdP para autenticação. Isso ativa a Conta do Google do usuário, gera um ID do dispositivo exclusivo e vincula a identidade da Conta do Google do usuário e o ID do dispositivo dele.