获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Introdução à API de autenticação de administrador

O SDK Admin do Firebase permite integrar seus próprios servidores com o Firebase Authentication. Você pode usar o SDK Admin do Firebase para gerenciar seus usuários ou para gerenciar tokens de autenticação. Há uma série de razões pelas 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 admin 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 a senha, o endereço de e-mail ou o número de telefone de um usuário.

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 ao qual 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 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á 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 para 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 que você execute 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 ao Firebase Authentication e incluir o token em uma solicitação ao seu servidor. Seu servidor 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 fez login etc.). 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 fornece métodos para realizar as tarefas de autenticação acima, permitindo que você gerencie seus usuários, gere tokens personalizados e verifique os tokens de ID.

Reivindicações de usuário personalizadas

Em alguns casos, convém implementar um controle de acesso refinado para usuários já conectados a um dos provedores de autenticação do Firebase compatíveis, como e-mail/senha, Google, Facebook, telefone etc. Uma combinação de declarações de usuário personalizadas e segurança do aplicativo regras fornece essa capacidade. 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 SDK Admin do Firebase fornece uma API para gerenciar seus usuários do Firebase com privilégios elevados. A API de gerenciamento de usuários administrativos oferece a capacidade de recuperar, criar, atualizar e excluir usuários programaticamente sem exigir as credenciais existentes de um 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 uso principal para criar 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 de terceiros que o Firebase não oferece suporte nativo, como Instagram ou LinkedIn.

O SDK Admin do Firebase tem um método integrado para criar tokens personalizados. Você também pode criar tokens personalizados programaticamente em qualquer idioma 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 tokens personalizados.

Criar tokens personalizados

Verificação do token de ID

Se o aplicativo cliente do Firebase se comunicar com o servidor de back-end, talvez seja necessário identificar o usuário conectado no seu 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 a especificação 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 de seus próprios back-ends. Isso permite que você identifique com segurança o usuário conectado no momento e autorize-o em seus próprios recursos de back-end.

O SDK Admin do Firebase tem um método integrado para verificar tokens de ID. Você também pode verificar tokens de ID programaticamente em qualquer idioma 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.

Verificar tokens de ID

Reivindicações de usuário personalizadas

O SDK Admin do Firebase 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 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