Autentique utilizadores com identidades externas
Este início rápido mostra como proteger uma app através do Identity-Aware Proxy (IAP) e de identidades externas. Ao combinar a IAP e a Identity Platform, pode autenticar utilizadores com uma vasta gama de fornecedores de identidade, como OAuth, SAML e OIDC, além das contas Google.
Neste início rápido, vai proteger uma app do App Engine de exemplo através da autenticação do Facebook.
Antes de começar
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
Verify that billing is enabled for your Google Cloud project.
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Inicialize o App Engine para o seu projeto:
gcloud app create --project=project-id
Instale uma versão atual do Node.js.
Instale a ferramenta de linha de comandos do Firebase:
npm install -g firebase-tools
Ative as APIs
Primeiro, ative o Identity Platform:
Aceda à página Identity Platform Marketplace na Google Cloud consola.
Clique em Ativar Identity Platform. É apresentada a página do Identity Platform na Google Cloud consola.
Em seguida, ative as CAsI:
Aceda à página IAP na Google Cloud consola.
Selecione o mesmo projeto que usou para a Identity Platform. A utilização de projetos diferentes não é suportada.
Clique em Ativar API.
Transfira e implemente o exemplo de código
O código deste guia de início rápido tem dois componentes: uma app cliente e uma app de autenticação.
A app cliente está protegida pela IAP. Quando recebe um pedido de um utilizador não autenticado, redireciona o pedido para a app de autenticação para validar a identidade do utilizador. Se o utilizador iniciar sessão com êxito, a app de autenticação responde com um símbolo da Web JSON (JWT). Para fins de demonstração, a app cliente apresenta o JWT.
Primeiro, transfira o código e implemente a app cliente:
Transfira o exemplo de código:
git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
Altere para o diretório da app cliente:
cd iap-gcip-web-toolkit/sample/app
Instalar dependências:
npm install
Implemente a app cliente no App Engine:
npm run deploy
A app cliente é iniciada no URL:
https://[PROJECT-ID].appspot.com
Em seguida, implemente a app de autenticação:
Altere para o diretório da app de autenticação:
cd ../authui-firebaseui
Instalar dependências:
npm install export NODE_OPTIONS=--openssl-legacy-provider
Configure a app de autenticação para usar o Firebase Hosting. Especifique o Google Cloud ID do projeto do Google Cloud projeto que contém a app cliente protegida pelo IAP:
firebase use project-id
Implemente a app:
npm run deploy
A app de autenticação é iniciada no URL:
https://[PROJECT-ID].firebaseapp.com
Implementou as apps de cliente e autenticação! O passo seguinte é configurar a Identity Platform e a IAP.
Configure o Identity Platform
O IAP usa a Identity Platform para autenticar identidades externas. Este início rápido usa o Facebook como exemplo, mas a Identity Platform suporta uma vasta gama de fornecedores de identidade.
Crie uma app do Facebook
Para autenticar utilizadores com o Facebook, precisa de um ID da app e de um segredo da app.
Inicie sessão no Facebook for Developers. Se ainda não tiver uma conta do Facebook, tem de criar uma.
Aceda à página Apps do Facebook.
Clique em Adicionar uma nova app.
No menu do lado esquerdo, selecione Definições > Básico.
Na caixa URL da Política de Privacidade, introduza qualquer URL válido. Se implementar a app em produção mais tarde, pode atualizar o URL para direcionar para a sua política de privacidade.
Tome nota do ID da app e do segredo da app. Vai precisar destes elementos na secção seguinte.
Adicione o Facebook como fornecedor de identidade
Configure o Identity Platform para usar o Facebook para autenticação:
Aceda à página Fornecedores de identidade na Google Cloud consola.
Clique em Adicionar um fornecedor.
Selecione Facebook na lista de fornecedores.
Introduza o ID da app e o segredo da app que obteve na secção anterior.
Clique em Guardar.
Configure o URI de redirecionamento OAuth
Quando o Facebook termina de processar um pedido da app de autenticação, precisa de um URI para fazer o redirecionamento.
Regresse à página Apps do Facebook e selecione a sua app.
No menu do lado esquerdo, clique em Produtos.
Localize o produto Início de sessão no Facebook e clique em Configurar.
No menu de navegação do lado esquerdo, selecione Definições (não tem de concluir o fluxo de início rápido guiado).
Na caixa URIs de redirecionamento OAuth válidos, introduza o URI de redirecionamento:
https://project-id.firebaseapp.com/__/auth/handler
Também pode encontrar este URI na página de configuração do fornecedor do Identity Platform.
Clique em Guardar alterações.
Concluiu a configuração do Identity Platform! Agora, pode configurar o IAP para o usar na autenticação.
Ative a IAP para usar identidades externas
Aceda à página de IAP na Google Cloud consola.
Clique no separador APLICAÇÕES.
Selecione a app de exemplo do App Engine que implementou anteriormente. O URL na categoria Publicado deve ter um aspeto semelhante ao seguinte:
https://project-id.appspot.com
Na coluna IAP, ative o interruptor.
No painel lateral, clique em Iniciar para Usar identidades externas para autorização.
Em Página de início de sessão, selecione Vou fornecer a minha.
No campo URL de autenticação, introduza o URL da app de autenticação. Deve ter um aspeto semelhante a:
https://project-id.firebaseapp.com/
Depois de introduzir o URL, a Google Cloud consola acrescenta automaticamente a chave da API.
Selecione a caixa com o nome do seu projeto. Deve ter o Facebook como um fornecedor de identidade.
Clique em Guardar.
Concluiu a configuração das CAsI.
Teste a autenticação de utilizadores
Para testar se a CNA está a proteger a sua app e a autenticar utilizadores com o Facebook:
Aceda à app do App Engine cliente no navegador:
https://project-id.appspot.com
Após um breve ecrã de carregamento, é feito o redirecionamento para a página de início de sessão do Identity Platform.
Siga as instruções no ecrã para fazer a autenticação com o Facebook.
Deve ser redirecionado novamente para a app cliente, que apresenta o JWT devolvido pela Identity Platform.
Para terminar sessão completamente, tem de terminar sessão na app de exemplo que criou e no Facebook. Tem de terminar sessão em ambas as apps porque o Firebase estabelece uma sessão com o Facebook válida durante uma hora. Para mais informações, consulte o artigo Gerir sessões de utilizadores.
Parabéns! Implementou com êxito uma app no App Engine e protegeu-a com o IAP e identidades externas.
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Além disso, pode querer eliminar a app Facebook que criou.
O que se segue?
- Personalize a IU de autenticação com a FirebaseUI, ou crie uma IU personalizada de raiz.
- Saiba como configurar fornecedores de identidade com a Identity Platform.
- Saiba como criar silos únicos de utilizadores e configurações com a funcionalidade multi-inquilino da Identity Platform.