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
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Make sure that billing is enabled for your Google Cloud project.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Inicialize o App Engine para seu projeto:
gcloud app create --project=project-id
Instale o Git (em inglês).
Instalar 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:
Acesse a página do Identity Platform no Marketplace console do Google Cloud.
Clique em Ativar Identity Platform. A página do Identity Platform será 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 Google Cloud ID do projeto do Google Cloud que contém o IAP aplicativo cliente protegido:
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 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.
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 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 console do Google Cloud 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
Para testar se o IAP protege o app e faz a autenticação Usuários com Facebook:
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, saia do app de exemplo que você criou e Facebook: Você precisa sair dos dois apps porque o Firebase estabelece uma sessão com o Facebook que é válida por uma hora. Para mais informações, consulte Gerenciar usuários Sessões.
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 conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
- 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.
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.