Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/ /

Autenticação JWT com Firebase (JWT personalizado)

Nesta página

  • Antes de começar
  • Configurar o provedor de autenticação JWT personalizado
  • Faça login com um JWT do Firebase

Você pode configurar o provedor de autenticação de personalizado JSON web token para autenticar usuários que você gerencia com o Autenticação de base de fiação.

Você precisará do seguinte para usar a Autenticação Firebase:

  • Um projeto do Firebase com Autenticação configurada. Para saber mais, consulte a Autenticação Firebase documentação.

  • Um aplicativo de serviços de aplicativos que ainda não usa a autenticação JWT customizada. Para saber como criar um novo App Services, consulte Criar um Aplicativo.

  • Se você estiver usando a interface de linha de comando, precisará que a App Services CLI seja instalada e autenticada em seu sistema local.

  • Se você estiver usando a API de administrador, precisará de um par de chaves pública/privada da API de administração do MongoDB Atlas. A chave de API deve ter permissões de Proprietário do Projeto .

Você pode configurar a autenticação JWT personalizada a partir da interface do usuário ou modificando os arquivos de configuração subjacentes diretamente com a CLI ou a API Admin. Escolha seu método preferido abaixo.

No menu de navegação esquerdo, clique em Authentication. Em seguida, clique na aba Authentication Providers e selecione o fornecedor Custom JWT .

Agora você pode configurar o provedor de autenticação JWT Personalizado para trabalhar com seu projeto Firebase.

  1. Clique no botão para habilitar o provedor.

  2. Defina Verification Method como Use a JWK URI. Especifique a seguinte URL para JWK URI:

    https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com
  3. Defina Metadata Fields para mapear dados do Firebase JWT para a conta de usuário correspondente do App Services.

    Nenhum dos campos de metadados é obrigatório. No entanto, você pode achá-los úteis para obter informações do usuário do Firebase JWT em seu aplicativo.

    Veja a seguir um mapeamento do Firebase JWT para um usuário dos Serviços de Aplicativo. Você pode adicioná-los à tabela na interface do usuário como estão ou modificar o mapeamento conforme desejar, seguindo a documentação dos campos de metadados.

    Caminho
    Nome do campo
    firebase.identities.email
    e-mails
    firebase.sign_in_provider
    signInProvider
    user_id
    ID do usuário
    email_verified
    emailVerified
    Email
    Email
  4. Defina Audience para sua ID de projeto do Firebase.

    Importante

    Você deve definir o público como ID do projeto do Firebase

    Você deve definir Audience para usar a ID do projeto Firebase como um provedor JWT personalizado, mesmo que ele seja rotulado como opcional na interface do usuário.

  5. Clique em Save e distribua as alterações

Execute o comando a seguir, substituindo o valor de --remote pela ID do aplicativo cliente do seu aplicativo. Isso baixa uma cópia local dos arquivos de configuração mais recentes do seu aplicativo e navega até o diretório do arquivo de configuração, que usa o mesmo nome do seu aplicativo.

appservices pull --remote "myapp-abcde"
cd myapp

Adicione um novo provedor de autenticação de JSON web token personalizado ao arquivo /auth/providers.json do seu aplicativo. Use a seguinte configuração como modelo, substituindo o valor audience pelo ID do projeto do Firebase. Você pode usar os metadata_fields fornecidos como estão ou modificar o mapeamento conforme desejar, seguindo a documentação dos campos de metadados.

/auth/providers.json
{
"custom-token": {
"name": "custom-token",
"type": "custom-token",
"disabled": false,
"config": {
"audience": ["<Your Firebase Project ID>"],
"jwkURI": "https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com",
"useJWKURI": true
},
"secret_config": {
"signingKeys": []
},
"metadata_fields": [
{
"required": false,
"name": "firebase.identities.email",
"field_name": "emails"
},
{
"required": false,
"name": "firebase.sign_in_provider",
"field_name": "signInProvider"
},
{
"required": false,
"name": "user_id",
"field_name": "userId"
},
{
"required": false,
"name": "email_verified",
"field_name": "emailVerified"
},
{
"required": false,
"name": "email",
"field_name": "email"
}
]
}
}

Salve suas alterações em /auth/providers.json. Em seguida, envie o arquivo de configuração atualizado para implantar seu aplicativo:

appservices push

Adicione um novo provedor de autenticação JWT personalizado ao seu aplicativo usando o endpoint Criar um provedor de autenticação.

Use a seguinte configuração como modelo. Certifique-se de:

  • Especifique o $PROJECT_ID e $APP_IDdo seu aplicativo

  • Inclua um token de acesso à API Admin no cabeçalho Authorization .

  • Substitua o valor audience no corpo da solicitação pelo ID do projeto do Firebase.

Você pode usar os metadata_fields fornecidos como estão ou modificar o mapeamento conforme desejar, seguindo a documentação dos campos de metadados.

curl "https://services.cloud.mongodb.com/api/admin/v3.0/groups/$PROJECT_ID/apps/$APP_ID/auth_providers" \
-X "POST" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "custom-token",
"type": "custom-token",
"disabled": false,
"config": {
"audience": ["<Your Firebase Project ID>"],
"jwkURI": "https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com",
"useJWKURI": true
},
"secret_config": {
"signingKeys": []
},
"metadata_fields": [
{
"required": false,
"name": "firebase.identities.email",
"field_name": "emails"
},
{
"required": false,
"name": "firebase.sign_in_provider",
"field_name": "signInProvider"
},
{
"required": false,
"name": "user_id",
"field_name": "userId"
},
{
"required": false,
"name": "email_verified",
"field_name": "emailVerified"
},
{
"required": false,
"name": "email",
"field_name": "email"
}
]
}'

Depois de configurar o provedor de autenticação JWT personalizado para usar a Autenticação do Firebase, você poderá fazer logon no aplicativo de Serviços de Aplicativo com um JWT do Firebase.

  1. Faça login do usuário no Firebase. Para saber como, consulte a documentaçãorelevante do Firebase SDK para sua plataforma e linguagem de programação.

  2. Obtenha o JWT Firebase do usuário. Para saber como, consulte Recuperar tokens de ID em clientes na documentação do Firebase.

  3. Use o Firebase JWT para se autenticar com o Atlas App Services. Você pode iniciar uma sessão por HTTP ou fazer login com um SDK. Para saber como, consulte os documentos do seu SDK:

Voltar

JWT personalizado