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.
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.
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.
- O cliente faz uma solicitação de POST para o servidor de autorização, de forma a obter um token de acesso.
- Se o cliente atender os requisitos para autenticação, o servidor de autorização retorna um token de acesso.
- O cliente envia uma requisição para o recurso protegido, informando o token de acesso obtido no passo anterior.
- 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:
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