O Firebase Admin SDK permite integrar seus próprios servidores ao Firebase Authentication. Você pode usar o Firebase Admin SDK para gerenciar seus usuários ou e gerenciar 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. Essa identidade vai ser usada para acessar outros Firebase serviços, como Cloud Storage.
Verificação da identidade
O Firebase Authentication é usado principalmente para identificar os usuários do seu app 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 você executa a lógica do lado do servidor com segurança em nome dos usuários que assinaram com 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 Firebase Admin SDK fornece métodos para realizar a de autenticação do usuário ao permitir que você gerencie usuários, gere 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 Firebase Admin SDK fornece uma API para gerenciar sua Firebase usuários 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áriosCriaçã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 Firebase Admin SDK tem um método integrado para criar em 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.
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 Firebase Admin SDK tem um método integrado de verificação 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.
Declarações de usuário personalizadas
O Firebase Admin SDK permite definir atributos personalizados em 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 Firebase Admin SDK, elas são propagadas para os usuários autenticados no cliente usando os tokens de código. 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