A segurança é uma das partes mais difíceis na criação de um sistema. Confira como agilizar o desenvolvimento e a entrega de aplicações seguras.

 

palavra do especialista

A segurança de um aplicativo é parte fundamental e pode ser bastante complicada. Para a maioria dos desenvolvedores é uma das partes mais difíceis da criação de um sistema, o que pode levar a uma pergunta: como é possível ter certeza de que você está protegendo as informações do usuário?

 

Para auxiliar nesta jornada, os provedores de nuvem oferecem soluções para controlar a autenticação, autorização e gerenciamento de usuários dos aplicativos web e móveis. Suportando autenticação com usuário e senha ou por meio de terceiros como Facebook, Google, bem como por meio de provedores de identidade SAML e OIDC.

Isso significa que os desenvolvedores podem adicionar a autenticação facilmente aos aplicativos web e móveis, com poucas linhas de código.

 

Como funciona

Os usuários informam seus dados de autenticação na sua aplicação. Estes dados são enviados para o serviço cloud (AWS Cognito, IBM App ID, Google Firebase), que verifica se estão de acordo as configurações estabelecidas. Uma vez verificados os dados, o acesso é autorizado e os usuários podem obter os recursos protegidos de acordo com os  níveis de segurança e perfis previamente configurados.

controle de acesso

 

Fluxo de autenticação e autorização

Você já ouviu falar sobre autorização e autenticação, certo? A princípio pode parecer confuso identificar as diferenças entre ambos, mas basicamente a autenticação é como seus usuários devem autenticar-se (usuário e senha, token) e autorização é sobre quais recursos da sua aplicação o seu usuário tem direito a acessar. 

A figura abaixo explica como funciona o fluxo.

controle de acesso

 

  1. O cliente faz uma solicitação de POST para o servidor de autorização, de forma a obter um token de acesso.
  2. Se o cliente atender os requisitos para autenticação, o servidor de autorização retorna um token de acesso.
  3. O cliente envia uma requisição para o recurso protegido, informando o token de acesso obtido no passo anterior.
  4. O token é validado. Se for válido, o acesso ao recurso protegido é concedido. Se o token não puder ser validado, o acesso é negado.

 

Gerenciando a autenticação

Os provedores de identidade (IDPs) incluem um nível de segurança para seus aplicativos móveis e da web por meio de autenticação. Com serviços cloud como (AWS Cognito, IBM App ID, Google Firebase) é possível configurar um ou vários provedores de identidade para criar uma experiência de conexão customizada para seus usuários.

Estes serviços interagem com os provedores de identidade usando vários protocolos como o OpenID Connect, o SAML 2.0 e mais.  Por exemplo, a conexão OpenID é o protocolo usado com muitos provedores sociais, como o Facebook e o Google. Os provedores corporativos, como o Azure Active Directory ou o Active Directory Federation Service, geralmente usam a SAML como o seu protocolo de identidade. Para o Cloud Directory, o serviço usa o SCIM para verificar as informações de identidade.

O serviço pode ser configurado para usar vários provedores de identidade, conforme a tabela a seguir:

controle de acesso

 

Preço 

Bom, você deve pensar que uma solução assim deve custar muito, mas uma vantagem bastante competitiva de adotar este tipo de solução é o seu custo baixo. Alguns provedores cloud oferecem no nível gratuito 50.000 autenticações de usuário por mês, dependendo do tipo de provedor de identidade utilizado.

 

Conclusão 

A segurança é parte fundamental de toda aplicação, ainda mais com o crescimento da internet e de aplicativos web. Garantir que os dados dos usuários estão seguros é um desafio constante e leva muito tempo para os desenvolvedores criarem a camada de controle e gerenciamento de autenticação e autorização.

Os serviços cloud, como os descritos aqui, são de grande ajuda e agilizam o tempo de desenvolvimento e a entrega de aplicações seguras.

 

Gabriel Asakawa

Head de Inovação / Tech Lead