Esta página foi traduzida pela API Cloud Translation.
Switch to English

Usuários do Identity Platform em projetos

O objeto usuário do Identity Platform representa uma conta de usuário inscrita em um app no projeto do Google Cloud. Normalmente, os apps têm muitos usuários registrados e, em um projeto do Google Cloud, todos os apps compartilham um banco de dados de usuários.

As instâncias do usuário são independentes das instâncias do Identity Platform. Por isso, é possível ter várias referências a diferentes usuários dentro do mesmo contexto e ainda chamar qualquer um dos métodos deles.

Propriedades do usuário

Os usuários do Identity Platform têm um conjunto fixo de propriedades básicas (um ID exclusivo, um endereço de e-mail principal, um nome e um URL de foto) armazenados no banco de dados de usuários do projeto, que podem ser atualizados pelo usuário (iOS, Android e Web). Não é possível adicionar outras propriedades diretamente ao objeto "user". Em vez disso, armazene as propriedades adicionais em qualquer outro serviço de armazenamento, como o Google Cloud Firestore.

Quando um usuário se registra no seu app, os dados do perfil dele são preenchidos com as informações disponíveis:

  • Se o usuário fez login com um endereço de e-mail e uma senha, somente a propriedade do endereço de e-mail principal será preenchida.
  • Se o usuário fez login com um provedor de identidade federado, como Google ou Facebook, as informações da conta disponibilizadas por esse provedor serão usadas para preencher o perfil dele.
  • Se o usuário fez login com seu sistema personalizado de autenticação, será preciso adicionar explicitamente as informações necessárias ao perfil do usuário.

Após a criação da conta de usuário, você pode atualizar as informações dela para incorporar alterações que o usuário fez em outro dispositivo.

Provedores de login

É possível permitir que usuários façam login nos seus apps usando vários métodos: endereço de e-mail e senha, provedores de identidade federados e um sistema personalizado de autenticação. Você também pode associar mais de um método de login a um usuário permitindo, por exemplo, que ele faça login na mesma conta usando um endereço de e-mail e uma senha ou o Login do Google.

As instâncias do usuário monitoram todos os provedores vinculados ao usuário. Isso permite que as propriedades em branco do perfil sejam atualizadas com as informações fornecidas por um provedor. Consulte o artigo "Como gerenciar usuários" (iOS, Android, web).

O usuário atual

Quando um usuário se registra ou faz login, ele se torna o usuário atual da instância de autenticação, e ela mantém o estado do usuário. Portanto, a atualização da página em um navegador ou a reinicialização do aplicativo não resultará na perda de informações do usuário.

Quando o usuário sai do aplicativo, a instância do Auth descarta a referência ao objeto User e ao estado dele. Logo, não há usuário atual. No entanto, a instância de usuário continua completamente funcional. Se você mantiver uma referência a ela, ainda poderá acessar e atualizar os dados do usuário.

O ciclo de vida do usuário

A forma recomendada de rastrear o estado atual da instância de autenticação é usar listeners (também chamados de "observadores" no JavaScript). Eles recebem uma notificação sempre que algo relevante acontece com o objeto Auth. Consulte o artigo "Como gerenciar usuários" (iOS, Android, web).

Um listener de autenticação é notificado nas seguintes situações:

  • O objeto Auth termina a inicialização, mas o usuário já havia feito login em uma sessão anterior ou foi redirecionado do fluxo de login de um provedor de identidade.
  • Um usuário faz login (o usuário atual está definido).
  • Um usuário sai (o usuário atual se torna nulo).
  • O token de acesso do usuário atual é atualizado. Isso pode acontecer nas seguintes condições:
    • O token de acesso expira: uma situação comum. O token de atualização é usado para acessar um novo conjunto válido de tokens.
    • O usuário altera a senha: o Identity Platform emite novos tokens de acesso e de atualização e renderiza os antigos. Com isso, o token do usuário expira e/ou é desvinculado automaticamente de todos os dispositivos por motivos de segurança.
    • O usuário se autentica novamente: algumas ações, como exclusão da conta, configuração de endereço de e-mail principal e alteração da senha, exigem emissão recente das credenciais do usuário. Em vez de desconectar o usuário e fazer o login dele novamente, adquira novas credenciais do usuário e transmita-as para o método de reautenticação do objeto "user".

Autoatendimento do usuário

Por padrão, o Identity Platform permite que os usuários se inscrevam e excluam as contas sem intervenção administrativa. Em muitas circunstâncias, isso permite que os usuários finais descubram seu aplicativo ou serviço e integrem (ou desintegrem) com o mínimo de atrito.

No entanto, há situações em que você quer que os usuários sejam criados manualmente ou programaticamente por um administrador usando o SDK Admin ou o Console do Cloud. Nesses casos, é possível desativar as ações do usuário na página de configurações do Identity Platform, o que impede a criação e a exclusão de contas por usuários finais.

Se um usuário final tentar criar ou excluir uma conta no sistema, o serviço do Identity Platform retornará um código de erro: auth/admin-restricted-operation para chamadas de API da Web ou ERROR_ADMIN_RESTRICTED_OPERATION para Android e iOS. Lide com o erro no seu front-end pedindo que o usuário realize as ações apropriadas para seu serviço.

Tokens de autenticação

Ao executar a autenticação com o Identity Platform, há três tipos de tokens de autenticação que podem ser encontrados:

Tokens de ID do Identity Platform Criado pelo Identity Platform quando um usuário faz login em um app. Esses tokens são JWTs assinados que identificam um usuário com segurança em um projeto do Google Cloud. Esses tokens contêm informações básicas de perfil para um usuário, incluindo a string de ID do usuário, que é exclusiva do projeto do Google Cloud. Já que é possível verificar a integridade dos tokens de ID, envie-os a um servidor de back-end para identificar o usuário conectado no momento.
Tokens de provedor de identidade Criados por provedores de identidade federados, como Google e Facebook. Eles podem ter formatos diferentes, mas costumam ser tokens de acesso OAuth 2.0. Os apps usam esses tokens para verificar se os usuários foram autenticados com o provedor de identidade e convertê-los em credenciais que podem ser usadas pelos serviços do Identity Platform.
Tokens personalizados do Identity Platform São criados pelo seu sistema personalizado de autenticação para permitir que os usuários façam login em um app usando seu sistema de autenticação. Os tokens personalizados são JWTs assinados usando a chave privada de uma conta de serviço. A maneira como os apps utilizam esses tokens é parecida com o uso de tokens retornados dos provedores de identidade federados.