Introdução à API Admin Auth

O Identity Platform foi criado com base em uma infraestrutura aprimorada que oferece suporte à autenticação de usuários nos seus aplicativos e serviços. É possível usar o SDK Admin do Firebase para integrar seus próprios servidores ao Identity Platform e gerenciar usuários ou tokens de autenticação. Veja os vários benefícios que terá caso use esse recurso:

Gerenciamento de usuários

Nem sempre é conveniente ter que acessar o console do Google Cloud (Console do Google Cloud) para gerenciar os usuários do Identity Platform. A API de gerenciamento de usuários do administrador oferece um acesso programático a eles. Ele permite até mesmo fazer o que o console do Google Cloud não pode, como recuperar todos os dados de um usuário e alterar a senha, o endereço de e-mail ou o número de telefone dele.

Autenticação personalizada

É possível integrar um sistema de usuários externo ao Identity Platform. Por exemplo, você talvez queira usar um banco de dados de usuários ou configurar uma integração com um provedor de identidade de terceiros ao qual o Identity Platform não oferece suporte nativo.

Para fazer isso, é possível criar tokens personalizados com declarações arbitrárias que identificam o usuário. É possível usar esses tokens personalizados para fazer login no serviço do Identity Platform em um aplicativo cliente e assumir a identidade descrita pelas declarações do token. Em seguida, essa identidade será usada para acessar outros serviços do Identity Platform, como o Cloud Storage.

Verificação da identidade

O Identity Platform é usado principalmente para identificar os usuários do aplicativo e restringir o acesso a outros serviços, como o Cloud Storage. No entanto, também é possível usar o serviço para identificar esses usuários no seu servidor próprio. Isso permite executar com segurança a lógica do servidor em nome dos usuários que fizeram login com o Identity Platform.

Para isso, recupere o token de ID de um aplicativo cliente que fez login com o Identity Platform e inclua o token em uma solicitação para seu servidor. Em seguida, o servidor verifica o token de código e extrai as declarações que identificam o usuário (incluindo o uid, o provedor de identidade com o qual ele fez login etc.). Agora, essas informações de identidade podem ser usadas pelo seu servidor para realizar ações em nome do usuário.

O SDK Admin do Firebase oferece métodos para realizar as tarefas de autenticação mencionadas acima. Com isso, será possível gerenciar seus usuários, gerar tokens personalizados e verificar tokens de código.

Declarações de usuário personalizadas

Em alguns casos, pode ser necessário implementar um controle de acesso detalhado para os usuários que já fizeram login com um dos provedores de autenticação do Identity Platform compatíveis, como e-mail/senha, Google, Facebook, telefone etc. A combinação de declarações de usuário personalizadas e regras de segurança de aplicativos oferece esse recurso. Por exemplo, um usuário conectado com o e-mail do Identity Platform e senha pode ter o controle de acesso definido usando declarações personalizadas.

Gerenciamento de usuários

O SDK Admin do Firebase fornece uma API para gerenciar os usuários do Identity Platform com privilégios altos. Com a API de gerenciamento de usuários do administrador é possível recuperar, criar, atualizar e excluir usuários de modo programático, sem precisar das credenciais de um usuário e sem limitações de taxa para o cliente.

Gerenciar usuários

Criação de tokens personalizados

O principal objetivo da criação de tokens personalizados é permitir a autenticação dos usuários com mecanismos externos ou legados. Pode ser um que você controla, como seu servidor LDAP ou um provedor OAuth de terceiros que não seja compatível com o Identity Platform, como o Instagram ou o LinkedIn.

O SDK Admin do Firebase tem um método integrado para criação de tokens personalizados. Você também pode criar tokens personalizados de modo programático em qualquer idioma usando bibliotecas JWT de terceiros.

O servidor precisará criar um token personalizado com um código exclusivo (uid) e transmiti-lo a um app cliente, que o usará para fazer login no Identity Platform. Consulte Criar tokens personalizados para ver exemplos de códigos e mais detalhes sobre o processo de criação desses tokens.

Verificação de tokens de ID

Se o app cliente do Identity Platform se comunicar com o servidor de back-end, talvez seja necessário identificar o usuário atualmente conectado no servidor para poder realizar a lógica do lado do servidor em nome dele. Isso pode ser feito com segurança usando os tokens de ID criados pelo Identity Platform quando um usuário faz login em um aplicativo do Identity Platform. Os tokens de ID estão em conformidade com as especificações do OpenID Connect e contêm dados para identificar um usuário, além de outras informações relacionadas ao perfil e à autenticação. É possível enviar, verificar e inspecionar tokens de ID em back-ends próprios. Com eles, é possível identificar com segurança o usuário conectado no momento e autorizá-los nos seus recursos de back-end.

O SDK Admin do Firebase tem um método integrado para verificar tokens de ID. Você também pode verificar os tokens de ID de modo programático em qualquer idioma usando bibliotecas JWT de terceiros. Consulte Verificar tokens de código para ver mais detalhes e exemplos de código sobre o processo de verificação desses tokens.

Declarações de usuário personalizadas

O SDK Admin do Firebase permite que você defina atributos personalizados nas contas de usuário. Com as declarações personalizadas, é possível oferecer aos usuários diferentes níveis de acesso (papéis) aplicados nas regras de segurança de um aplicativo.

Depois que as declarações personalizadas são modificadas em um usuário por meio do SDK Admin do Firebase, elas são propagadas para os usuários autenticados no cliente usando os tokens de ID. O token de ID é um mecanismo confiável de envio dessas declarações personalizadas, e todo o acesso autenticado precisa validar o token de ID antes de processar a solicitação relacionada.

Controlar o acesso com declarações personalizadas