Se a sua aplicação processar pedidos de utilizadores, é uma prática recomendada restringir o acesso apenas aos utilizadores permitidos. Normalmente, os utilizadores não têm autorização do IAM no seu Google Cloud projeto ou serviço do Cloud Run.
Distinguimos dois tipos de utilizadores:
- Utilizadores finais: utilizadores da sua aplicação que não pertencem necessariamente à sua organização. Normalmente, têm de registar uma conta para si próprios.
- Utilizadores internos: utilizadores aos quais um administrador na sua organização concede explicitamente acesso à sua aplicação. Normalmente, pertencem à sua organização.
Autenticação de utilizadores finais
Se quiser autenticar utilizadores através de email/palavra-passe, número de telefone, fornecedores sociais, como Google, Facebook ou GitHub, ou um mecanismo de autenticação personalizado, pode usar a Identity Platform. A utilização do Firebase Authentication é semelhante à utilização da Identity Platform.
Precisa de uma app Web ou para dispositivos móveis pública que processe o fluxo de início de sessão e, em seguida, faça chamadas API autenticadas para um serviço do Cloud Run. Esta app Web pública pode ser alojada num serviço público do Cloud Run.
Para um tutorial completo sobre a utilização da Identity Platform para a autenticação de utilizadores finais, consulte o tutorial Autenticação de utilizadores finais para o Cloud Run.
Adicione código ao seu serviço do Cloud Run para validar tokens de ID.
Faça o seguinte na sua app para dispositivos móveis ou Web:
- Use a biblioteca cliente do Firebase Auth adequada para obter um token de ID:
- Android: use o método
GetTokenResult().getToken()
. - iOS: use o método
User.getIDTokenResult(completion:)
. - Web: use o método
firebase.User.getIdToken()
.
- Android: use o método
- Inclua o token de ID num cabeçalho
Authorization: Bearer ID_TOKEN
no pedido ao serviço.
- Use a biblioteca cliente do Firebase Auth adequada para obter um token de ID:
Pode usar qualquer um dos seguintes métodos para aceder às informações do perfil do utilizador:
- Use o SDK de administrador do Firebase para fazer um pedido de rede para obter dados do utilizador.
- Use uma biblioteca cliente de APIs Google para obter dados do utilizador através do método mais adequado para o tempo de execução escolhido.
Para ver um exemplo completo de uma aplicação que usa esta técnica de autenticação, siga o tutorial de autenticação de utilizadores finais para o Cloud Run.
Autenticação de utilizadores internos
Para a autenticação de utilizadores internos, use o Identity-Aware Proxy.
Para configurar o Identity-Aware Proxy para um serviço do Cloud Run, consulte o artigo Configure o Identity-Aware Proxy para o Cloud Run.
Para pedidos Cross-Origin Resource Sharing (CORS) pré-enviados com serviços do Cloud Run autenticados, recomendamos que configure o IAP para o Cloud Run em vez de usar a autenticação IAM. Isto permite-lhe configurar o IAP para permitir pedidos OPTIONS não autenticados, o que satisfaz a verificação prévia do navegador, ao mesmo tempo que garante que todos os outros pedidos são autenticados.
Mesmo quando o IAP permite o pedido OPTIONS, o código da aplicação que implementa no Cloud Run tem de processar o pedido de verificação prévia do CORS e o pedido real que se segue enviando os cabeçalhos CORS adequados.
Para saber como autenticar utilizadores ou contas de serviço num serviço do Cloud Run protegido pelo Identity-Aware Proxy através do OAuth 2.0, consulte a documentação sobre a autenticação programática.