Provisionar contas de usuário

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

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

  • O diretório de usuários da organização é a fonte definitiva de informações sobre os usuários.
  • Você (o provedor da solução de EMM) precisa manter pelo menos um diretório mínimo dos usuários da organização.
  • O Google mantém algumas informações sobre as Contas do Google Play gerenciadas e as Contas do Google para oferecer gerenciamento de apps no Google Play.

Um recurso Users representa uma conta associada a uma empresa. A conta pode ser específica para um dispositivo ou associada a uma pessoa que tem vários dispositivos (smartphone, tablet etc.) e usa a conta em todos eles. A conta pode fornecer acesso apenas ao Google Play gerenciado ou a outros Serviços do Google, dependendo de como você configura a empresa do cliente:

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

  • As Contas do Google são contas gerenciadas pelo Google e precisam ser sincronizadas com as origens das Contas do Google.

Tabela 1: campos e métodos da API Users

 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).Não definido
accountTypedeviceAccount, userAccountuserAccount
displayNameO nome que você mostra em itens da interface, 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 usada para gerenciar a sincronização de contas de domínio gerenciadas pelo Google para contas de usuário no seu sistema.
Métodos
excluir
generateAuthenticationToken
generateToken
get
getAvailableProductSet
insert
list
revokeToken
setAvailableProductSet
update

Contas do Google Play gerenciado

Há dois tipos de Contas do Google Play gerenciadas:

Conta de usuário
Oferece acesso de um único usuário ao Google Play gerenciado em todos os dispositivos. Você precisa provisionar contas de usuário para seus usuários, que não têm as credenciais para adicionar Contas do Google Play gerenciadas.
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 exclusiva ao usuário na empresa.
Prática recomendada: não use a mesma conta em mais de 10 dispositivos.
Conta de dispositivo
Fornece 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 um token de autenticação para essa conta de dispositivo vai desativar o token anterior. Cada dispositivo precisa ter a própria licença separada para apps.
Para criar uma conta de dispositivo, chame Users.insert e defina o tipo de conta como deviceType.

Você cria e mantém um mapeamento entre as identidades do usuário ou do dispositivo e as contas do Google Play gerenciado correspondentes e gerencia as contas durante o ciclo de vida delas. A organização não precisa de controle direto sobre essas contas do Google Play gerenciado, já que elas existem apenas para o gerenciamento de aplicativos.

Requisitos para consoles e servidores de EMM

As contas do Google Play gerenciado são criadas sob demanda, de forma programática, usando as APIs EMM do Google Play e as APIs do framework Android nos componentes da solução EMM (console EMM, servidor 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 .

O console ou servidor de EMM precisa:

  • Forneça um mecanismo para criar identificadores de contas anônimas exclusivos (o campo accountIdentifier) para usar na chamada para Users.insert. Por exemplo, você pode usar algum 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 saber os requisitos do 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 DPC usando (normalmente) credenciais corporativas.
  2. O DPC solicita detalhes sobre o usuário do servidor ou console do EMM. Supondo que o usuário seja desconhecido para seu sistema:
    1. Envie uma solicitação para uma nova conta do Google Play gerenciado chamando Users.insert com valores para novos accountIdentifier, displayName e accountType.
      • Seu sistema precisa criar a accountIdentifier. O identificador da conta precisa ser um valor exclusivo no seu sistema. Não use PII para o identificador da conta.
      • O displayName é mostrado no seletor de contas da Google Play Store e precisa ter algum significado para o usuário (mas não PII sobre o usuário). 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. Um userAccount pode ser usado em vários dispositivos, enquanto um deviceAccount é específico 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 uma userId.
    3. Armazene o mapeamento entre o accountIdentifier e o 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 precisa ser usado em alguns minutos.
    5. Encaminhar o token de autenticação com segurança para o DPC.
  3. O DPC provisiona o perfil de trabalho e adiciona a conta ao perfil de trabalho ou dispositivo.
  4. O usuário pode acessar a Google Play Store gerenciada no perfil de trabalho ou no dispositivo.

Contas de administrador

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

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

Gerenciar ciclos de vida da conta

Em uma implantação de contas do Google Play gerenciadas, você é responsável pelos ciclos de vida das contas de usuário e de dispositivos, ou seja, você cria, atualiza e exclui essas contas.

Você cria as contas durante o provisionamento do dispositivo, um processo que envolve o app DPC e o console de EMM. Para instruções, consulte o método de 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 do Google Play gerenciado. Quando isso acontece, as contas de dispositivo e de usuário associadas à empresa são excluídas, conforme descrito em Cancelar, reativar e excluir.

Vencimento da conta

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

  • O token de autenticação que foi recebido para adicionar a conta ao dispositivo expirou.
  • A conta ou empresa foi excluída.
  • Para contas de dispositivo, a conta foi adicionada a um novo dispositivo e, portanto, foi desativada no dispositivo antigo.
  • As verificações automáticas de abuso são acionadas.
  • Se um dispositivo ficar off-line por mais de 270 dias, as informações dele poderão ser excluídas devido a um processo de limpeza em lote.

Na maioria dos casos, a prática recomendada é usar a API Play EMM para solicitar um novo token do servidor EMM, anotar o estado da conta e da empresa e todos os erros retornados e, em seguida, realizar a ação apropriada no dispositivo. Isso acontece a menos que o EMM esteja movendo intencionalmente uma conta de dispositivo para um novo dispositivo. Por exemplo, renove o token ou, se o erro não puder ser recuperado, redefina ou cancele o registro do dispositivo.

Para renovar o token corretamente, faça o seguinte:

  1. Chame users.generateAuthenticationToken para solicitar um novo token de autenticação para a conta.
  2. Se a chamada for bem-sucedida, remova a conta atual e adicione a nova usando a biblioteca de suporte do DPC.
  3. Se a chamada falhar, remova a conta do dispositivo e crie um novo usuário usando users.insert, gere um token de autenticação e adicione a conta ao dispositivo.

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

  1. Quando a Conta do Google Play gerenciada é 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 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

Para organizações que usam Contas do Google, as contas de usuário em uma solução de EMM refletem 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 origem da criação e das informações sobre a conta.

Como EMM, você pode fornecer mecanismos no seu console para facilitar a criação e a sincronização contínua das contas de usuário armazenadas no seu sistema com as origens das contas de domínio do Google usando ferramentas como o Google Cloud Directory Sync (GCDS) e a API Directory do SDK Admin do Google. para 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 sua solução (console de EMM, servidor de EMM, talvez em um repositório de dados) antes de ser provisionada em qualquer dispositivo do usuário no contexto de um perfil de trabalho.

Durante o provisionamento de identidade, o domínio gerenciado pelo Google da organização é 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 de um usuário, ele 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 do domínio do G Suite com os dados do diretório LDAP. Como alternativa, você pode usar o GCDS para fazer isso em nome da organização, se ela conceder acesso a você.

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

Se a organização usa o Microsoft Active Directory e quer manter as senhas do G Suite dos usuários sincronizadas com as senhas do Active Directory, ela ou você pode 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ório. Se você tiver acesso de leitura somente ao domínio do Google gerenciado da organização, poderá usar a API Google Directory para receber informações da Conta do Google, como nomes de usuário (mas não senhas) do Google. Como você não pode gravar dados nas Contas do Google dos usuários, a organização é totalmente responsável pelos ciclos de vida da conta.

    O cenário 1 e os cenários de autenticação SSO baseada em SAML descrevem essa situação de forma mais completa.

    Para saber como usar a API Directory dessa forma, consulte Extrair todos os usuários da conta na documentação da API Directory.

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

    O cenário 2 descreve essa situação de forma mais completa.

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

Cenários das Contas do Google

Confira abaixo alguns cenários típicos de provisionamento de identidade de Contas do Google.

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

Como usar a API Directory (com acesso somente leitura) e o GCDS

Nesse cenário, o 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 as correlaciona com os dados da Conta do Google que recebe do Google pela API Directory.

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 o 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.
  • Seu banco de dados adquire nomes de Contas do Google, mas não nomes de usuário ou senhas LDAP.
  • Você usa a API Google Directory para receber informações básicas da conta dos usuários do seu cliente. As informações disponíveis para você são as não graváveis retornadas por uma solicitação Users.get. Você usa essas informações para verificar se as Contas do Google dos usuários existem para que eles possam fazer a autenticação nos dispositivos.
  • Seu cliente usa a ferramenta GCDS para fazer uma sincronização unidirecional e preencher as Contas do Google dos usuários. A organização provavelmente também usa o GCDS para a própria sincronização contínua após o provisionamento de identidade. Opcionalmente, a organização também pode usar a ferramenta GSPS para sincronizar não apenas nomes de usuário, mas também senhas.

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

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

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

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

Nesse caso:

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

Cenários de autenticação do SSO baseado 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. Você usa os nomes das Contas 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 ao fazer login nos dispositivos. Por exemplo, o SAML pode ser usado no cenário 2. Para saber como fazer isso, consulte Configurar o logon único (SSO) em contas do G Suite.

Ativar contas em dispositivos

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

  • No provisionamento de dispositivo de contas do Google Play gerenciado, o DPC orienta o usuário a fazer login usando credenciais aceitas pelo console do EMM, normalmente credenciais de e-mail corporativos.
  • 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 às que os usuários usam para fazer login no domínio corporativo quando ele é sincronizado com o GCDS ou o GSPS ou quando uma organização usa um IdP para autenticação. Isso ativa a Conta do Google do usuário, gera um ID de dispositivo exclusivo e vincula a identidade da Conta do Google do usuário e o ID do dispositivo dele.