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
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.
Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:
gcloud init
Inicialize o App Engine para seu projeto:
gcloud app create --project=project-id
Instale o Git (em inglês).
Instale o Node.js (em inglês).
Instale a ferramenta de linha de comando do Firebase:
npm install -g firebase-tools
Ativar as APIs
Primeiro, ative o Identity Platform:
Acesse a página Identity Platform Marketplace no Console do Google Cloud.
Clique em Ativar Identity Platform. A página do Identity Platform é exibida no Console do Google Cloud.
Em seguida, ative o IAP:
Acesse a página do IAP no Console do Google Cloud.
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/app
Instale as dependências:
npm install
Implante o app cliente no App Engine:
npm run deploy
O 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-firebaseui
Instale as dependências:
npm install
Configure o app de autenticação para usar o Firebase Hosting. Especifique o mesmo ID do projeto usado no app cliente:
firebase use project-id
Implante o app:
npm run deploy
O 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 Facebook 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 Adicionar um novo aplicativo.
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 Console do Google Cloud.
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 Save.
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.
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 Console do Google Cloud.
Clique na guia APPLICATIONs.
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 para 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 que você insere o URL, o console do Google Cloud anexa 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 Save.
Pronto! Você terminou de configurar o IAP.
Testar autenticação do usuário
Para testar se o IAP está protegendo seu app e autenticando usuários com o Facebook, faça o seguinte:
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.
Parabéns! Você conseguiu implantar um aplicativo no App Engine e protegê-lo com o IAP e identidades externas.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
- No Console do Google Cloud, 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 Encerrar para excluí-lo.
Também convém excluir o app do Facebook que você criou.
A seguir
- Personalize sua IU de autenticação com o FirebaseUI ou crie uma IU 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.