Autenticar usuários com identidades externas
Neste guia de início rápido, você aprenderá como proteger um app usando o Identity-Aware Proxy (IAP) e identidades externas. Ao combinar o IAP e o Identity Platform, é possível autenticar usuários com uma ampla variedade de provedores de identidade, como o OAuth, o SAML e o OIDC (links em inglês), além das Contas do Google.
Neste guia de início rápido, você seguirá as instruções para proteger um aplicativo de amostra do App Engine usando a autenticação do Facebook.
Antes de começar
Funções exigidas
Para conseguir as permissões necessárias a fim de concluir o guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Criador de projetos (
roles/resourcemanager.projectCreator) -
Administrador do App Engine(
roles/appengine.appAdmin) -
Leitor do Firebase Authentication (
roles/firebaseauth.viewer) -
Administrador de políticas do IAP (
roles/iap.admin) -
Leitor do Compute (
roles/compute.viewer) -
Administrador do Identity Platform (
roles/identityplatform.admin)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
No Google Cloud console do, na página do seletor de projetos, escolha ou crie um Google Cloud projeto do.
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, você precisa do papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
Verifique se o faturamento está ativado para o Google Cloud projeto.
Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initInicialize o App Engine para seu projeto:
gcloud app create --project=project-id
Instale uma versão atual do Node.js.
Instale a ferramenta de linha de comando do Firebase:
npm install -g firebase-tools
Ativar as APIs
Primeiro, ative o Identity Platform:
No Google Cloud console, acesse a página do Identity Platform no Marketplace.
Clique em Ativar Identity Platform. A página do Identity Platform será exibida no Google Cloud console do.
Em seguida, ative o IAP:
Acesse a página do IAP no Google Cloud console.
Selecione o mesmo projeto que você usou no Identity Platform. Não é possível usar projetos diferentes.
Clique em Ativar API.
Fazer o download e implantar o código de amostra
O código usado neste guia de início rápido tem dois componentes: um app cliente e um app de autenticação.
O app cliente está protegido pelo IAP. Quando ele recebe uma solicitação de um usuário não autenticado, essa solicitação é redirecionada ao app de autenticação para que a identidade do usuário seja verificada. Se o usuário conseguir fazer login, o app de autenticação responderá com um JSON Web Token (JWT). Para fins de demonstração, o app cliente exibe o JWT.
Primeiro, faça o download do código e implante o app cliente:
Faça o download do código de amostra:
git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
Mude para o diretório do app cliente:
cd iap-gcip-web-toolkit/sample/appInstale as dependências:
npm installImplante o app cliente no App Engine:
npm run deployO app cliente é iniciado no URL:
https://[PROJECT-ID].appspot.com
Em seguida, implante o app de autenticação:
Mude para o diretório do app de autenticação:
cd ../authui-firebaseuiInstale as dependências:
npm install export NODE_OPTIONS=--openssl-legacy-providerConfigure o app de autenticação para usar o Firebase Hosting. Especifique o Google Cloud ID do projeto do Google Cloud projeto que contém o IAP app cliente protegido:
firebase use project-id
Implante o app:
npm run deployO app de autenticação é iniciado no URL:
https://[PROJECT-ID].firebaseapp.com
Pronto! Você implantou os apps cliente e de autenticação. A próxima etapa é configurar o Identity Platform e o IAP.
Configurar o Identity Platform
O IAP usa o Identity Platform para autenticar identidades externas. Neste guia de início rápido, o Facebook é usado como exemplo. No entanto, o Identity Platform é compatível com uma ampla variedade de provedores de identidade.
Criar um app do Facebook
Para autenticar usuários com o Facebook, você precisa do ID e da chave secreta do app.
Faça login no Meta for Developers. Se você ainda não tiver uma conta do Facebook, será necessário criar uma.
Acesse a página Meus aplicativos no Facebook.
Clique em Criar app.
No menu à esquerda, selecione Configurações > Básico.
Na caixa URL da Política de Privacidade, insira qualquer URL válido. Se, mais tarde, você quiser implantar o app em produção, conseguirá atualizar o URL para que direcione à sua política de privacidade.
Anote o ID e a chave secreta do app. Você precisará dessas informações na próxima seção.
Incluir o Facebook como um provedor de identidade
Configure o Identity Platform para usar o Facebook na autenticação:
Acesse a página Provedores de identidade no Google Cloud console.
Clique em Adicionar um provedor.
Selecione Facebook na lista de provedores.
Insira o ID e a chave secreta do app que você viu na seção anterior.
Clique em Salvar.
Configurar o URI de redirecionamento OAuth
Quando o Facebook termina de processar uma solicitação do app de autenticação, ele precisa de um URI para fazer o redirecionamento.
Retorne à página Meus aplicativos no Facebook e selecione seu app.
No menu à esquerda, clique em Produtos > Adicionar produto.
Localize o produto Login do Facebook e clique em Configurar.
No menu de navegação à esquerda, selecione Configurações. Você não precisa concluir o fluxo do guia de início rápido.
Na caixa URIs de redirecionamento do OAuth válidos, insira o URI de redirecionamento:
https://project-id.firebaseapp.com/__/auth/handler
Também é possível encontrar esse URI na página de configuração de provedores do Identity Platform.
Clique em Salvar alterações.
Pronto! Você acabou de configurar o Identity Platform. Agora poderá configurar o IAP para usá-lo na autenticação.
Ativar o IAP para usar identidades externas
Acesse a página do IAP no Google Cloud console do.
Clique na guia APLICATIVOS.
Selecione o aplicativo do App Engine de exemplo que você implantou anteriormente. O URL na categoria Publicado é parecido com este:
https://project-id.appspot.com
Na coluna "IAP", habilite a opção Ativado.
No painel lateral, clique em Iniciar em Usar identidades externas para autorização.
Em Página de login, selecione Vou fornecer meu próprio link.
No campo URL de autenticação, insira o URL do app de autenticação. Ele precisa ser parecido com este:
https://project-id.firebaseapp.com/
Depois de inserir o URL, o Google Cloud console do anexará automaticamente sua chave de API.
Marque a caixa com o nome do seu projeto. O Facebook estará listado como um provedor de identidade.
Clique em Salvar.
Pronto! Você terminou de configurar o IAP.
Testar a autenticação do usuário de teste
Para testar se o IAP está protegendo seu app e autenticando usuários com o Facebook, siga estas etapas:
Acesse o aplicativo cliente do App Engine no seu navegador:
https://project-id.appspot.com
Depois de uma rápida tela de carregamento, você será redirecionado para a página de login do Identity Platform.
Siga as instruções na tela para fazer a autenticação com o Facebook.
Você será redirecionado para o app cliente, que exibirá o JWT retornado pelo Identity Platform.
Para sair completamente, você precisa sair do app de exemplo que criou e do Facebook. É necessário sair dos dois apps porque o Firebase estabelece uma sessão com o Facebook válida por uma hora. Para mais informações, consulte Gerenciar sessão de usuários.
Parabéns! Você conseguiu implantar um aplicativo no App Engine e protegê-lo com o IAP e identidades externas.
Liberar espaço
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.
Também convém excluir o app do Facebook que você criou.
A seguir
- Personalize sua UI de autenticação com o FirebaseUI, ou crie uma UI personalizada do zero.
- Saiba mais sobre como configurar provedores de identidade com o Identity Platform.
- Saiba como criar silos exclusivos de usuários e configurações com a multilocação do Identity Platform.