Autenticação do Google
Nesta página
Visão geral
O provedor de autenticação do Google permite que os usuários conectem-se com sua conta do Google existente por meio do Google Sign-In. Quando um usuário faz login, o Google fornece ao Atlas App Services um OAuth 2.0 token de acesso para o usuário. O App Services usa o token para identificar o usuário e acessar os dados aprovados das APIs do Google em seu nome.
O diagrama a seguir mostra o fluxo lógico OAuth:
Configurar um projeto no console da API do Google
Você deve configurar um projeto no Console da API do Google antes de configurar a Autenticação do Google nos Serviços de aplicativos. Siga as etapas específicas do SDK para configurar a autenticação do Google no Console da API do Google.
O provedor de autenticação do Google requer um projeto no Console da API do Google para gerenciar a autenticação e as permissões de usuário. As etapas a seguir percorrem a criação do projeto, a geração de credenciais OAuth e a configuração do provedor para se conectar ao projeto.
Criar um projeto no console da API do Google
Siga o aba oficial do Google para criar um novo projeto GCP.
Gerar credenciais de cliente OAuth
Observação
Para aplicativos de cliente iOS, você precisa criar um ID de cliente OAuth da Web e um ID de cliente OAuth do iOS. O primeiro é usado pelo App Services, enquanto o segundo será usado pela própria aplicação.
Consulte a guia Web desta seção para obter instruções sobre como criar o ID do cliente do aplicação web para o App Services.
Siga o guia de suporte do Google sobre como configurar o OAuth 2.0 para seu projeto.
Use os valores a seguir ao configurar seu aplicativo iOS Client ID:
Application Type | iOS |
Name | O nome que você deseja associar a este Client ID. |
Bundle ID | O ID do pacote do seu aplicativo iOS. Você pode encontrar esse valor no XCode na aba General do destino primary da aplicação. |
Use os seguintes valores ao configurar seu aplicativo Android Client ID:
Application Type | Android |
Name | O nome que você deseja associar a este Client ID. |
Signing-certificate Fingerprint | A impressão digital SHA-1 do certificado de assinatura do seu aplicativo. Consulte Autenticando seu cliente para obter instruções sobre como gerar esse valor. |
Você precisará criar um aplicação da web Client ID e fornecer vários valores relacionados ao App Services.
Para Authorized JavaScript Origins, insira a seguinte URL:
https://services.cloud.mongodb.com
Para Authorized Redirect URIs, insira o URL de chamada de resposta de chamada de autenticação do App Services que corresponde à região de sistema do seu aplicação. A tabela a seguir lista o URL de chamada de resposta de chamada para cada região:
Região | URL de retorno de chamada de autenticação de App Services | |
---|---|---|
Global |
| |
Virginia ( us-east-1 ) |
| |
Oregon ( us-west-2 ) |
| |
Ireland ( eu-west-1 ) |
| |
Frankfurt ( eu-central-1 ) |
| |
Mumbai ( ap-south-1 ) |
| |
Singapore ( ap-southeast-1 ) |
| |
Sydney ( ap-southeast-2 ) |
|
Configurar o fornecedor de autenticação do Google
Para conectar seu projeto do GCP ao App Services, adicione o OAuth 2.0 Client ID e Client Secret que você gerou na etapa anterior da configuração do seu provedor de autenticação.
Observação
Adicione as credenciais do aplicativo da web à configuração do fornecedor. Se você adicionar as credenciais do iOS, a autenticação do Google falhará.
Configurar no App Services
Você pode habilitar e configurar o fornecedor de autenticação do Google na UI do App Services selecionando Google na página Authentication.
Para habilitar e configurar o provedor de autenticação do Google com a App Services CLI, defina um objeto de configuração para ele no /auth/providers.json
.
As configurações do provedor do Google têm o seguinte formato:
{ "oauth2-google": { "name": "oauth2-google", "type": "oauth2-google", "disabled": <boolean>, "config": { "clientId": <string>, "openId": <boolean> }, "secret_config": { "clientSecret": <string> }, "metadata_fields": [<document>, ...], "redirect_uris": [<string>, ...], "domain_restrictions": [<string>, ...] } }
O fornecedor de autenticação do Google tem as seguintes opções de configuração:
Campo | Descrição | |
---|---|---|
Client ID config.clientId | Obrigatório. Um OAuth 2.0 Client ID para seu projeto no Console da API do Google. Consulte Configurar um projeto no console de APIs do Google para obter informações sobre como configurar as credenciais do OAuth para seu projeto do GCP. | |
Client Secret secret_config.clientSecret | Obrigatório. O nome de um Secret que armazena um OAuth 2.0 Client Secret para seu projeto a partir do Console da API do Google. Consulte Configurar um projeto no console de APIs do Google para obter informações sobre como configurar as credenciais do OAuth para seu projeto do GCP. | |
Metadata Fields metadata_fields | Opcional. Uma lista de campos descrevendo o usuário autenticado que seu aplicativo solicitará da API do Google Identity. Todos os campos de metadados são omitidos por padrão e podem ser exigidos campo por campo. Os usuários têm de conceder explicitamente à sua aplicação permissão para acessar cada campo obrigatório. Se um campo de metadados for obrigatório e existir para um usuário específico, ele será incluído em seu objeto de usuário. Para exigir um campo de metadados de um arquivo de configuração de importação/exportação, adicione uma entrada para o campo à array
| |
Redirect URIs redirect_uris | Necessário para aplicações web. Uma lista de URLs de redirecionamento permitidas. Depois que um usuário concluir o processo de autenticação no Google, o App Services o redirecionará para um URI especificado ou, se não houver nenhum URI especificado, a URL em que ele iniciou a solicitação de autenticação. O App Services redirecionará apenas um usuário para um URI que corresponde exatamente a uma entrada nesta lista, incluindo o protocolo e eventuais barras. | |
Domain Restrictions domain_restrictions | Opcional. Uma lista de domínios aprovados para contas de usuário. Se especificado, o fornecedor verificará o domínio do endereço de e-mail primary de um usuário no Google e só permitirá a autenticação se o domínio corresponder a uma entrada nessa lista. Por exemplo, se ObservaçãoSe você especificou quaisquer restrições de domínio, você também deverá exigir o campo de endereço de e-mail na configuração Metadata Fields. | |
OpenID Connect config.openId | Opcional. Padrão Se ImportanteO suporte do OpenID Connect varia de acordo com o SDKConsulte a documentação específica do SDK sobre suporte para OpenID Connect. Nem todas as implementações de SDK de autenticação do Google aceitam OpenID Connect, mas outras sim. ObservaçãoO OpenID Connect não suporta campos de metadadosO Google suporta OpenID como parte de sua implementação OAuth 2.0, mas não fornece acesso a escopos restritos para autenticação OpenID. Isso significa que o App Services não pode acessar campos de metadados para usuários autenticados com OpenID Connect. |
Exemplos
Para exemplos de código que demonstram como registrar e se conectar usando a autenticação do Google, consulte a documentação para os SDKs do Realm: