O Que É OAuth (Autorização Aberta) e Por Que É Importante? - TechRobot

O Que É OAuth (Autorização Aberta) e Por Que É Importante?

Violações de dados são uma das maiores ameaças em uma geração que cresce rapidamente e avança tecnologicamente. Uma violação de dados pode devastar empresas, reputações e até governos. Além disso, basta uma única conta privilegiada vulnerável ser comprometida por entidades não autorizadas para que dados críticos sejam “roubados”. O mundo digitalizado gera, compartilha, armazena mais dados, e as contas digitais são comuns.

Muitos serviços na internet são integrados e projetados para interagir uns com os outros. No entanto, usar contas de serviço para acessar aplicativos e sites envolve a prática insegura de armazenar credenciais privilegiadas, principalmente sem autenticação de dois fatores (MFA), e expõe informações privadas ao comprometimento.

A importância da privacidade e da segurança dos dados é incrível. Consequentemente, padrões abertos de segurança como o OAuth protegem informações pessoais e privadas durante a transferência de dados entre terceiros. O padrão OAuth compilado pela Internet Engineering Task Force (IETF) protege os proprietários de recursos na web ao usar serviços de terceiros. Continue lendo para descobrir mais sobre o OAuth.

O Que É OAuth?

OAuth (Open Authorization) é um framework de padrão aberto que permite o acesso de terceiros a informações ou ativos relacionados a usuários autenticados em servidores e serviços (como sites e aplicativos) sem compartilhar suas credenciais de login. Ele fornece acesso delegado seguro a recursos do servidor em nome de um proprietário de recurso usando autenticação baseada em tokens. No entanto, o protocolo de autenticação verifica a identidade do usuário usando senhas, telefone ou identidade biométrica e não deve ser confundido com o protocolo de Open Authorization.

Ao contrário de protocolos de autenticação como o OpenID, o OAuth autoriza acesso limitado a recursos após uma autenticação bem-sucedida. Empresas como Facebook, Google, Amazon, Twitter, Paypal, Netflix e Microsoft permitem que seus usuários compartilhem informações de conta com sites e aplicativos de terceiros por meio do OAuth.

O padrão de autenticação e autorização desacoplado do OAuth protege as informações do usuário ao conceder acesso a recursos sem revelar a identidade ou credenciais do usuário. Assim, serviços de terceiros podem solicitar em nome do usuário sem acessar senhas e outras informações sensíveis.

O mecanismo OAuth segue um fluxo de autorização com três componentes chave: o provedor, o proprietário/usuário e o cliente/consumidor. O provedor OAuth é o servidor de autorização e o principal motor do OAuth. Servidores de recursos (APIs como Facebook ou Google) usam OAuth para se conectar a um site ou aplicação de terceiros em nome e com a aprovação do usuário. O provedor fornece ao serviço cliente um token de autenticação de acesso para autorização a informações hospedadas pelo servidor de recursos. O Usuário é o proprietário dos dados/informações em um servidor de recursos. O login do usuário confirma o compartilhamento de informações. O Cliente é o site ou aplicação que requer acesso às informações ou recursos do usuário.

Ele ganha acesso ao servidor de recursos com um token de acesso. Finalmente, o programa cliente requer registro com OAuth para que a autorização prossiga. O processo completo de OAuth requer múltiplas aprovações e todos os três componentes para transação/acesso autorizado.

OAuth 1.0

A segurança das informações dos usuários é essencial com o aumento do compartilhamento, armazenamento e utilização de dados. Como resultado, é importante integrar padrões de autorização seguros em aplicativos e serviços de websites para prevenir violações de dados. OAuth é reconhecido como o padrão mais seguro de compartilhamento de informações para websites e APIs. O padrão OAuth suporta múltiplos fluxos para abordar diferentes cenários de autorização de aplicativos clientes e diferentes capacidades de dispositivos. Ele suporta aplicativos de servidor para servidor, aplicativos web, aplicativos móveis, websites, consoles ou TVs.

O protocolo OAuth 1.0 foi publicado em 2010 para derrubar a ausência de padrões abertos para delegação de acesso a API. No entanto, foi lançado pela primeira vez em 2007 como um método de autorização para a interface de aplicação do Twitter. O IETF lançou o OAuth 2.0 dois anos depois como um protocolo de autorização completamente novo e melhorado. Ele difere da primeira versão com o aumento dos fluxos OAuth, tokens de curta duração e incompatibilidade retroativa com o OAuth 1.0.

OAuth 1.0 lidava com a delegação por meio de um framework baseado em assinaturas digitais. Era forte e seguro, tanto que grandes nomes como Google e Twitter o apoiaram e adotaram. Requeria implementação criptográfica e interoperabilidade criptográfica, o que o tornava muito seguro. No entanto, é desafiador para os desenvolvedores implementarem sem experiência adequada em criptografia e capacidades de gestão de chaves.

OAuth é geralmente um protocolo de delegação que fornece permissão e não um protocolo de autenticação como o OpenID – uma camada de identidade construída em cima do protocolo OAuth 2.0. Embora muitas aplicações usem OAuth 2.0 para autenticação e autorização, ele é especializado apenas para autorização delegada.

O Framework OAuth 2.0 

O framework OAuth 2.0 é o protocolo padrão da indústria para autorização. Uma reescrita do protocolo original de Autorização Aberta fornece uma solução mais abrangente para clientes modernos da web e não-web. O framework contém especificações que protegem ainda mais os dados do usuário. Estas incluem:

Expiração de Token

Os tokens OAuth são geralmente irrevogáveis e, na versão 1.0, eles não expiram. Como resultado, os tokens não são totalmente seguros e estão sujeitos a ameaças. Com acesso a um token ou segredo de verificação, um cliente/usuário não autorizado, como hackers e sites maliciosos, pode fazer solicitações não autorizadas e obter acesso às credenciais e informações pessoais dos usuários. O framework OAuth 2.0 supera essa fraqueza com tokens que expiram. Uma vez que o token de acesso expira, o acesso ao aplicativo também termina, a menos que outro token de acesso seja gerado por meio do ciclo de atualização. O OAuth 2.0 gera tokens de acesso “de curta duração”. Eles duram entre a duração de uma sessão até algumas semanas, mas utilizam tokens de atualização para adquirir um novo token de acesso, em vez de fazer o usuário repetir todo o processo para reautorizar o aplicativo.

Desenvolvimento do Lado do Cliente 

OAuth 2.0 considera clientes não-web assim como fluxos de trabalho web. OAuth 2.0 oferece fluxos de autorização específicos para aplicações web, aplicações de desktop, celulares, TVs/consoles e aplicações baseadas em não-navegador, como serviços baseados em API. Também é muito mais fácil de implementar, trabalhar e fornecer autenticação forte.

Separação de Funções

OAuth 2.0 separa as funções de entrega de recursos e tratamento de autorização do usuário. Servidores fisicamente separados, ou até mesmo nomes de domínio diferentes, podem lidar com ambos os papéis. Assim, cada parte do sistema escala independentemente. Portanto, o servidor de autorização requer o ID do cliente e o segredo, mas o servidor de API só aceitará tokens de acesso. Consequentemente, o banco de dados evita compartilhar dados com os servidores de API. Isso torna o novo padrão mais aplicável para grandes empresas. Isso porque permite que esses sistemas ocorram independentemente, por equipes diferentes e em cronogramas diferentes.

Tokens de Acesso e Requisitos Criptográficos Eliminados

OAuth cria um equilíbrio entre o uso fácil de APIs e boas práticas de segurança. O uso de token de portador simplifica a implementação do OAuth ao eliminar a complexidade das assinaturas criptográficas nos padrões OAuth 1.0. OAuth 2.0 requer apenas o próprio token na solicitação.

Autenticação de Dois Fatores

OAuth utilizava o método de autenticação de fator único, menos seguro, para a divulgação de contas. A autenticação de fator único poderia ser facilmente comprometida, uma vez que os hackers só precisam obter uma única informação para ganhar acesso. OAuth 2.0, no entanto, requer mais níveis de autenticação para conceder acesso a um usuário. Ele usa tokenização e uma natureza de dois fatores para proteger as contas dos usuários.

Por Que o OAuth é Importante?

Aplicações web sofisticadas, aplicativos móveis e modelos de negócios únicos emergiram. A evolução dos casos de uso para novos cenários torna os mecanismos tradicionais de autorização inadequados. Muitos desses cenários exigem que um servidor ou cliente se comunique (conecte-se) com múltiplos servidores para executar uma solicitação ou ação. Como resultado, a necessidade de fornecer novas soluções para compartilhamento de dados e federação de identidade entre múltiplas partes confiáveis é intensificada. OAuth é um poderoso framework de segurança que se esforça para resolver os desafios associados à autorização. Portanto, é importante integrar OAuth em aplicativos e sites. Aqui está o motivo:

Garante a segurança das informações do servidor mesmo durante o compartilhamento

O protocolo OAuth depende do SSL (Secure Sockets Layer) para garantir que os dados entre o servidor web e o navegador permaneçam privados. Na verdade, é uma parte importante da autenticação do site de qualquer organização porque protege as credenciais dos usuários.

A tokenização permite apenas acesso limitado aos dados do usuário

Informações sensíveis, como informações de cartão de crédito e registros médicos, recebem IDs de token e são armazenadas remotamente. Os comerciantes recebem os tokens, não os dados reais. Assim, as informações compartilhadas permanecem privadas. Terceiros que ainda não têm acesso aos seus registros médicos, senhas ou número de cartão de crédito, podem verificar o token para transações.

OAuth permite o uso de login único (SSO)

O SSO garante acesso fácil, controla riscos e dá aos usuários controle sobre seus dados. Ele melhora o moral e a produtividade dos usuários ao permitir acesso a múltiplas aplicações com apenas um conjunto de credenciais de login. Ele consolida as credenciais dos usuários e simplifica o processo de login para os usuários. Isso elimina o incômodo de gerenciar inúmeras senhas ou repetir as mesmas informações ao usar serviços online.

Coloca os usuários no controle do que serviços de terceiros podem fazer com seus recursos

Processos tradicionais exigem o compartilhamento de credenciais com sites de terceiros para compartilhar informações. No entanto, o OAuth restringe terceiros e impede que eles realizem certas ações nefastas, como alterar configurações do usuário ou suas credenciais, e bloquear o acesso do usuário à conta.

Conclusão

OAuth (Open Authorization) protege as informações do usuário contra violações de dados tanto quanto possível. O primeiro protocolo para OAuth 1.0 foi reescrito para OAuth 2.0. A indústria de cibersegurança adota amplamente o OAuth 2.0 como a opção mais segura para autorização. Embora não exista um sistema de autorização infalível, o OAuth é um dos melhores. Sites como Facebook, Twitter, LinkedIn, Google, Amazon, Instagram e GitHub usam o OAuth como sua principal tecnologia para autenticação e autorização.