Guia de início rápido: gerenciar o acesso 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

  1. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  2. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  3. Instale e inicialize o SDK do Cloud..

  4. Inicialize o App Engine para seu projeto:

    gcloud app create --project=project-id
    
  5. Instale o Git (em inglês).

  6. Instale o Node.js (em inglês).

  7. Instale a ferramenta de linha de comando do Firebase:

    npm install -g firebase-tools
    

Ativar as APIs

Primeiro, ative o Identity Platform:

  1. No Console do Cloud, acesse a página do Identity Platform no Marketplace.

    Acessar a página do Identity Platform no Marketplace

  2. Clique em Ativar o Identity Platform. A página do Identity Platform será exibida no Console do Cloud.

Em seguida, ative o IAP:

  1. Acesse a página do IAP no Console do Cloud.

    Acessar a página do IAP

  2. Selecione o mesmo projeto que você usou no Identity Platform. Não é possível usar projetos diferentes.

  3. 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:

  1. Faça o download do código de amostra:

    git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
    
  2. Mude para o diretório do app cliente:

    cd iap-gcip-web-toolkit/sample/app
    
  3. Instale as dependências:

    npm install
    
  4. 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:

  1. Mude para o diretório do app de autenticação:

    cd ../authui-firebaseui
    
  2. Instale as dependências:

    npm install
    
  3. 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
    
  4. 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.

  1. Faça login no Facebook for Developers. Se você ainda não tiver uma conta do Facebook, será necessário criar uma.

  2. Acesse a página Meus aplicativos no Facebook.

  3. Clique em Adicionar um novo aplicativo.

  4. No menu à esquerda, selecione Configurações > Básico.

  5. 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.

  6. 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:

  1. Acesse a página Provedores do Identity Platform no Console do Cloud.

    Acessar a página "Provedores do Identity Platform"

  2. Clique em Adicionar um provedor.

  3. Selecione Facebook na lista de provedores.

  4. Insira o ID e a chave secreta do app que você viu na seção anterior.

  5. 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.

  1. Retorne à página Meus aplicativos no Facebook e selecione seu app.

  2. No menu à esquerda, clique em Produtos.

  3. Localize o produto Login do Facebook e clique em Configurar.

  4. No menu de navegação à esquerda, selecione Configurações. Você não precisa concluir o fluxo do guia de início rápido.

  5. 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.

  6. 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

  1. Acesse a página do IAP no Console do Cloud.

    Acessar a página do IAP

  2. Clique na guia Recursos HTTP.

  3. 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
    
  4. Na coluna "IAP", habilite a opção Ativado.

    Ativar o IAP

  5. No painel lateral, em Usar identidades externas para autorização, clique em Iniciar.

    Alternar para identidades externas

  6. Em Página de login, selecione Vou fornecer meu próprio link.

  7. 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 Cloud anexará automaticamente sua chave de API.

  8. Marque a caixa com o nome do seu projeto. O Facebook estará listado como um provedor de identidade.

    Configurar identidades externas

  9. Clique em Salvar.

Pronto! Você terminou de configurar o IAP.

Testar o acesso

Para testar se o IAP está protegendo seu app, siga estas etapas:

  1. 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.

  2. Siga as instruções na tela para fazer a autenticação com o Facebook.

  3. 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.

Fazer limpeza

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste guia de início rápido, siga estas etapas:

  1. No Console do Cloud, acesse a página Gerenciar recursos:

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. 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