Introdução à API Admin Auth

O Firebase Admin SDK permite integrar seus próprios servidores ao Firebase Authentication. Você pode usar o SDK Admin do Firebase para gerenciar seus usuários ou tokens de autenticação. Existem vários motivos pelos quais você gostaria de fazer isso:

Gerenciamento de usuários

Nem sempre é conveniente visitar o console do Firebase para gerenciar seus usuários do Firebase. A API de gerenciamento de usuários administradores fornece acesso programático a esses mesmos usuários. Ele ainda permite que você faça coisas que o console do Firebase não pode, como recuperar os dados completos de um usuário e alterar sua senha, endereço de e-mail ou número de telefone.

Autenticação personalizada

Você pode integrar um sistema de usuário externo ao Firebase. Por exemplo, talvez você já tenha um banco de dados de usuários pré-existente ou queira integrá-lo a um provedor de identidade de terceiros que o Firebase Authentication não oferece suporte nativo.

Para fazer isso, você pode criar tokens personalizados com declarações arbitrárias que identificam o usuário. Esses tokens personalizados podem então ser usados ​​para fazer login no serviço Firebase Authentication em um aplicativo cliente e assumir a identidade descrita pelas declarações do token. Essa identidade será então usada ao acessar outros serviços do Firebase, como o Cloud Storage.

Verificação de Identidade

O Firebase Authentication é usado principalmente para identificar usuários do seu aplicativo a fim de restringir o acesso a outros serviços, como o Cloud Storage. Você também pode usar o serviço para identificar esses usuários em seu próprio servidor. Isso permite executar com segurança a lógica do lado do servidor em nome dos usuários que fizeram login com o Firebase Authentication.

Para fazer isso, você pode recuperar um token de ID de um aplicativo cliente conectado com o Firebase Authentication e incluir o token em uma solicitação ao seu servidor. Seu servidor então verifica o token de ID e extrai as declarações que identificam o usuário (incluindo seu uid , o provedor de identidade com o qual ele efetuou login, etc.). Essas informações de identidade podem então ser usadas pelo seu servidor para realizar ações em nome do usuário.

O SDK Admin do Firebase fornece métodos para realizar as tarefas de autenticação acima, permitindo que você gerencie seus usuários, gere tokens personalizados e verifique tokens de ID.

Declarações de usuário personalizadas

Em alguns casos, você pode querer implementar um controle de acesso refinado para usuários já conectados com um dos provedores de autenticação do Firebase compatíveis, como e-mail/senha, Google, Facebook, telefone, etc. regras fornece esse recurso. Por exemplo, um usuário conectado com o provedor de e-mail e senha do Firebase Authentication pode ter o controle de acesso definido usando declarações personalizadas.

Gerenciamento de usuários

O Firebase Admin SDK fornece uma API para gerenciar usuários do Firebase com privilégios elevados. A API de gerenciamento de usuários administradores oferece a capacidade de recuperar, criar, atualizar e excluir usuários de maneira programática, sem exigir as credenciais existentes do usuário e sem se preocupar com a limitação de taxa do lado do cliente.

Gerenciar usuários

Criação de token personalizado

O principal uso para a criação de tokens personalizados é permitir que os usuários se autentiquem em um mecanismo de autenticação externo ou legado. Pode ser um que você controla, como seu servidor LDAP, ou um provedor OAuth terceirizado que o Firebase não oferece suporte nativo, como Instagram ou LinkedIn.

O SDK Admin do Firebase possui um método integrado para criar tokens personalizados. Você também pode criar tokens personalizados programaticamente em qualquer linguagem usando bibliotecas JWT de terceiros.

Seu servidor deve criar um token personalizado com um identificador exclusivo ( uid ) e passar esse token para um aplicativo cliente, que o usará para fazer login no Firebase. Consulte Criar tokens personalizados para exemplos de código e mais detalhes sobre o processo de criação de token personalizado.

Crie tokens personalizados

Verificação de token de identificação

Se o aplicativo cliente do Firebase se comunicar com o servidor back-end, talvez seja necessário identificar o usuário atualmente conectado no servidor para poder executar a lógica do lado do servidor em nome dele. Você pode fazer isso com segurança usando tokens de ID, que são criados pelo Firebase quando um usuário faz login em um aplicativo do Firebase. Os tokens de ID estão em conformidade com as especificações do OpenID Connect e contêm dados para identificar um usuário, bem como algumas outras informações relacionadas ao perfil e à autenticação. Você pode enviar, verificar e inspecionar esses tokens em seus próprios back-ends. Isso permite que você identifique com segurança o usuário atualmente conectado e autorize-o em seus próprios recursos de back-end.

O Firebase Admin SDK tem um método integrado para verificar tokens de ID. Você também pode verificar tokens de ID programaticamente em qualquer linguagem usando bibliotecas JWT de terceiros. Consulte Verificar tokens de ID para obter mais detalhes e exemplos de código sobre o processo de verificação de token de ID.

Verifique os tokens de identificação

Declarações de usuário personalizadas

O Firebase Admin SDK permite definir atributos personalizados em contas de usuário. Com declarações de usuário personalizadas, você pode fornecer aos usuários diferentes níveis de acesso (funções), que são então 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 lado do cliente por meio de seus tokens de ID. O token de ID é um mecanismo confiável para entregar essas declarações personalizadas, e todo acesso autenticado deve validar o token de ID antes de processar a solicitação associada.

Controle o acesso com declarações personalizadas