Desenvolva aplicações da web sem servidor protegidas

2 min de leitura
Patrocinado
Imagem de: Desenvolva aplicações da web sem servidor protegidas
Avatar do autor

Equipe TecMundo

@tec_mundo

Por: Niklas Heidloff

Publicado em: 28 de novembro de 2017

Obtenha o código

Conteúdo arquivado | Data de arquivamento: 28/05/2020

Este conteúdo não está mais sendo atualizado ou mantido e está apresentado como "as is". Dada a rápida evolução da tecnologia, alguns materiais, etapas ou ilustrações podem ter recebido alterações.

Resumo

A IBM Cloud Functions, com base no Apache OpenWhisk, é uma plataforma Function-as-a-Service (FaaS)  que executa funções em resposta a eventos recebidos e não possui custos se não está em uso. Ela é ativada quando o código é executado e desativada quando não é mais necessária. Neste padrão de código de desenvolvedor, demonstramos como utilizar a IBM Cloud Functions com OAuth 2.0 para ativar a autenticação e a autorização em uma aplicação da web.

Descrição

As aplicações da web precisam de autenticação e autorização. Tal fato parece redundante, mas, por vários anos, não houve nenhuma solução reutilizável. O OAuth definitivamente deu um grande passo adiante ao introduzir a autenticação e a autorização de terceiros. Ainda assim, ambas as ações consomem muitos recursos de empacotamento e hospedagem de implantação, levando em consideração que os usuários realizam login apenas uma vez a cada tanto tempo, em espaços relativamente longos.

Neste padrão de código, temos uma aplicação da web escrita em Angular. Vamos configurar a API Google OAuth para que os usuários possam fazer o login em suas contas da Google por meio do OAuth. É claro que, na aplicação da web, o código já existe para invocar a IBM Cloud Functions. Ainda precisamos definir as ações por meio do IBM CLI. Depois de conectarmos tudo, poderemos ver como o processo de login invoca a ação IBM Cloud Functions a fim de disparar a solicitação OAuth para a API da Google e retornar o token para a aplicação da web Angular. Observe que a aplicação da web não precisa ser hospedada em um ambiente específico; ela só precisa alcançar as APIs que não possuem servidor.

Fluxo

IBM

  1. O usuário abre o Angular por meio do navegador da web e clica em login;

  2. A aplicação Angular abre a página da web do Google OAuth, na qual os usuários autenticam e concedem acesso à aplicação;

  3. A página da Google redireciona para a sequência OpenWhisk oauth-login-and-redirect com um parâmetro de código na URL;

  4. A sequência é acionada. A primeira função OpenWhisk oauth-login lê o código e invoca um endpoint da API da Google a fim de trocar o código por um token;

  5. A mesma função oauth-login invoca com o token outro endpoint da API da Google para ler as informações do perfil do usuário, como o nome do usuário;

  6. A sequência invoca o próximo redirecionamento da função OpenWhisk, que invoca a aplicação Angular com o token e o nome do usuário na URL;

  7. Quando os usuários clicam em invocar ação protegida na aplicação Angular, uma API REST para o gerenciamento de API é acionada. A solicitação contém o token;

  8. O gerenciamento de API valida o token. Caso seja válido, a ação protegida da função OpenWhisk é acionada;

  9. A resposta da ação protegida é exibida na aplicação Angular.

Instruções

Pronto para colocar esse padrão de código em uso? Os detalhes completos sobre como começar a executar e usar esta aplicação você encontra no arquivo README.

...

Quer ler mais conteúdo especializado de programação? Conheça o IBM Blue Profile e tenha acesso a matérias exclusivas, novas jornadas de conhecimento e testes personalizados. Confira agora mesmo, consiga as badges e dê um upgrade na sua carreira!

…..

Quer dar o próximo grande passo na sua jornada profissional? Participe do Cloud Training, um curso online e gratuito que vai te preparar para o exame da certificação IBM Cloud Foundations. Inscreva-se já!

Desenvolva aplicações da web sem servidor protegidas