Introdução à API Admin Auth

Com o SDK Admin do Firebase, é possível integrar servidores próprios ao Firebase Authentication. Você pode usá-lo para gerenciar seus 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 visitar o Console do Firebase para gerenciar seus usuários do Firebase. A API de gerenciamento de usuários do administrador oferece um acesso programático a eles. Com ela, é possível inclusive realizar ações como recuperar todos os dados e alterar a senha e o endereço de e-mail de um usuário, o que não pode ser feito no Console do Firebase.

Autenticação personalizada

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

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

Verificação da identidade

O Firebase Authentication é usado principalmente para identificar os usuários do seu aplicativo a fim de 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 que você realize com segurança a lógica do servidor em nome dos usuários que fizeram login com o Firebase Authentication.

Para isso, recupere o token de ID de um aplicativo cliente que fez login com o Firebase Authentication e o inclua em uma solicitação para seu servidor. Em seguida, o servidor verifica o token de ID 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 ID.

Declarações de usuário personalizadas

Em alguns casos, é possível que você queira implementar um controle de acesso detalhado para os usuários que já fizeram login com um dos provedores de autenticação do Firebase compatíveis, como e-mail/senha, Google, Facebook, telefone, entre outros. Uma combinação de declarações de usuário personalizadas e regras de segurança para aplicativos oferece essa função. Por exemplo, um usuário conectado com o provedor de senha e e-mail do Firebase Authentication 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 seus usuários do Firebase com privilégios elevados. 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. Esse mecanismo pode ser controlado por você, como seu servidor LDAP ou um provedor OAuth terceirizado que não tenha compatibilidade nativa com o Firebase, como Instagram ou 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.

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

Criar tokens personalizados

Verificação de tokens de ID

Se o app cliente do Firebase se comunica com o servidor de back-end, talvez seja necessário identificar o usuário atualmente conectado no servidor para realizar a lógica do servidor em nome dele. É possível fazer isso com segurança usando tokens de ID, que são criados pelo Firebase quando um usuário faz login em um app do Firebase. Esses tokens estão em conformidade com a especificação 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 ID para ver mais detalhes e exemplos de código sobre o processo de verificação desses tokens.

Verificar tokens de ID

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