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 gerenciado | Contas gerenciadas pelo Google | |
---|---|---|
Campo | ||
id | ||
kind | ||
accountIdentifier | Um 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 |
accountType | deviceAccount, userAccount | userAccount |
displayName | O nome que você mostra em itens da interface, como no Google Play. Não use informações de identificação pessoal. | Não definido |
managementType | emmManaged | googleManaged, emmManaged |
primaryEmail | Não definido | Esse 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 comouserType
e defina umaccountIdentifier
, 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 comodeviceType
.
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 paraUsers.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 chamadainsert
) e oaccountIdentifier
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
- Um usuário faz login no DPC usando (normalmente) credenciais corporativas.
- O DPC solicita detalhes sobre o usuário do servidor ou console do EMM.
Supondo que o usuário seja desconhecido para seu sistema:
- Envie uma solicitação para uma nova conta do Google Play gerenciado chamando
Users.insert
com valores para novosaccountIdentifier
,displayName
eaccountType
.- 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
comouserAccount
oudeviceAccount
. UmuserAccount
pode ser usado em vários dispositivos, enquanto umdeviceAccount
é específico para um único dispositivo. OaccountType
especificado pode serdeviceType
ouuserType
. - Defina
managementType
comoemmManaged
.
- Seu sistema precisa criar a
- O Google Play processa a solicitação, cria a conta e
retorna uma
userId
. - Armazene o mapeamento entre o
accountIdentifier
e ouserId
no seu repositório de dados. - Chame
Users.generateAuthenticationToken
comuserId
eenterpriseId
. O Google Play retorna um token de autenticação que pode ser usado uma vez e precisa ser usado em alguns minutos. - Encaminhar o token de autenticação com segurança para o DPC.
- Envie uma solicitação para uma nova conta do Google Play gerenciado chamando
- O DPC provisiona o perfil de trabalho e adiciona a conta ao perfil de trabalho ou dispositivo.
- 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:
- Chame
users.generateAuthenticationToken
para solicitar um novo token de autenticação para a conta. - Se a chamada for bem-sucedida, remova a conta atual e adicione a nova usando a biblioteca de suporte do DPC.
- 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:
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 nomeaccount
, que é o objeto
da conta invalidada.Account
O DPC verifica
Account#name
com o servidor EMM para identificar a conta invalidada.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
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
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.