This post is also available in:
Na última década, o desenvolvimento de aplicativos acelerou e está no auge no Android, iOS, Windows, Linux, Mac, com a ajuda de APIs padronizadas . Como resultado, a transmissão de informações pessoais e a comunicação diária de dados são inevitáveis em milhares de aplicativos. Como toda essa comunicação acontece por meio de diferentes plataformas de aplicativos móveis, navegadores e servidores, ela deve ser protegida. OAuth é um desses protocolos de segurança da Internet conhecido por armazenar e gerenciar dados do usuário sem compartilhá-los entre aplicativos.
Vamos começar com a definição.
O que é OAuth?
OAuth, também conhecido como Open Authorization, é um protocolo de internet e um padrão aberto para aplicativos seguirem para usuários de internet acessarem suas informações em outros sites sem compartilhar as senhas. Grandes empresas de tecnologia como Google, Amazon e Facebook usam esse mecanismo para permitir que os usuários compartilhem suas informações de perfil com sites ou aplicativos de terceiros.
Existem duas versões:
1) OAuth 1.0a 2) OAuth 2.0
Simplificando, quando um usuário faz login em qualquer aplicativo de terceiros como o Airbnb usando sua conta do Google, o OAuth mantém as credenciais para que os usuários façam login no aplicativo do Airbnb e o gerenciem em segundo plano sem compartilhar as informações com o aplicativo.
Em resumo, minimizou o risco de ameaças de segurança ao manter as credenciais da conta do Google seguras. Além disso, permite que os usuários permitam que os aplicativos acessem seus dados sem precisar compartilhá-los.
Como funciona o OAuth?
OAuth se concentra principalmente em:
- O usuário final (proprietário de recursos/informações) inclui os dados do usuário, que o aplicativo cliente deseja acessar.
- Aplicativo Cliente (API): Aplicativo Cliente: Inclui o site/aplicativo web, que precisa acessar as informações.
- Provedor de serviços OAuth: o aplicativo ou site que contém as credenciais pessoais do usuário. Ele oferece suporte a OAuth oferecendo uma API para interação com um servidor de autorização e de recursos.
O processo tem diferentes “fluxos” ou “tipos de concessão”.
- O aplicativo cliente solicita acesso aos dados do usuário.
- O usuário final efetua login no serviço.
- O aplicativo cliente obtém um token de acesso. Agora eles terão permissão do usuário para acessar os dados solicitados.
- O aplicativo cliente usa o token de acesso para fazer chamadas de API recebendo os dados do servidor de recursos.
OAuth: autenticação x autorização
Autenticação: É o processo de aprovação de um usuário como a pessoa correta para acessar o aplicativo. Também é conhecido como “AuthN”. Por exemplo, a Microsoft usa o protocolo OpenID Connect para autenticação.
Autorização: Um processo de autorização de uma pessoa autenticada. Também é conhecido como “AuthZ”. Por exemplo, a Microsoft usa o protocolo OAuth2.0 para autorização.
Diferenças entre OAuth1.0 e OAuth2.0
OAuth1.0 e OAuth2.0 são duas versões diferentes do OAuth. Então você pode usá-lo dependendo de suas necessidades com base em seus objetivos.
OAuth1.0
OAuth1.0 foi projetado para lidar com as limitações do OpenID e é usado para autorização de vários aplicativos ou acesso manual do usuário. Ele funciona fornecendo um token de acesso ao aplicativo para representar a permissão do usuário para que o aplicativo cliente acesse os dados.
OAuth 2.0
É a reescrita completa do OAuth1.0 e agora é o padrão do setor para autorização online. OAuth fornece permissão de acesso ao aplicativo para recursos do usuário hospedados por outros aplicativos da Web em nome do usuário.
Além disso, é um protocolo de autorização e não de autenticação, pois é projetado principalmente para dar acesso a um conjunto de recursos/dados do usuário.
OAuth 1.0 | OAuth 2.0 |
Independente de transporte Fundada em Criptografia, especialmente assinaturas digitais. Não é mais fácil de trabalhar. Não muito flexível. Ele lida apenas com fluxos de trabalho da web. Fluxo de trabalho básico de assinatura | Dependente de transporte É bom para integração, mas não ótimo para segurança. É muito útil e fácil de trabalhar, mas mais difícil de construir com segurança. Muito mais flexível. Ele lida com fluxos de trabalho da Web, bem como clientes não Web. Fluxo de trabalho básico de assinatura |
Como o OAuth2.0 ajuda a segurança da API?
OAuth foi projetado explicitamente como uma abordagem avançada para conceder acesso a aplicativos. Ele usa tokens concedidos para fornecer segurança avançada, como funções de escopo para estabelecer permissões refinadas para aplicativos. Além disso, possui o atributo essencial chamado disponibilidade de tokens com restrição de tempo, pois não é possível reutilizá-los depois que expiram.
Como o OAuth2.0 foi projetado como uma estrutura, ele atua como um acordo operacional geral e atende a vários propósitos, oferecendo…
- JSON Web Tokens define payloads para passar dados entre sistemas com mecanismos de expiração integrados e assinaturas para validação.
- OpenID Connect: Permite a padronização de tokens para compartilhamento de informações do perfil do usuário.
- O tipo de concessão de dispositivo: estende o OAuth para IoT e dispositivos inteligentes.
Como o OAuth 2.0 ajuda o gerenciamento de acesso à API?
A estrutura OAuth2.0 simplificou o envolvimento do usuário com aplicativos, protegendo suas informações pessoais. Além disso, protege firmemente os dados do usuário enquanto ainda permite que os aplicativos os acessem sem exposição. Em segundo plano, a API concede acesso ao usuário sempre que recebe o token válido e com restrição de tempo do aplicativo gerado usando o framework OAuth2.0.
Como funciona o gerenciamento de acesso à API?
A API de gerenciamento de acesso permite que um usuário acesse as funcionalidades administrativas da plataforma, incluindo:
- Convite e inscrição
- Gerenciamento de usuários
- Gestão de clientes
- Organizações e Grupos Empresariais
- Funções e permissões
- Ambientes
- Direitos
O gerenciamento de acesso à API fornece uma camada de autorização consistente e previsível para qualquer usuário e serviço acessar os serviços, independentemente do idioma, estrutura ou arquitetura.
Benefícios do gerenciamento de acesso à API
- Permite criar escopos e declarações personalizados.
- Permite criar um ou mais servidores de autorização personalizados. Portanto, ajuda a gerenciar conjuntos de acesso à API para vários aplicativos cliente.
- Passa Tokens validados em vez de credenciais. Os tokens JWT geralmente carregam as cargas úteis para o contexto do usuário.
Resumindo
OAuth cobre uma enorme área de superfície de segurança. Tudo o que você precisa é ter certeza, são entradas de aplicativos validadas e um kit de ferramentas seguro. Dessa forma, a segurança baseada em token ou OAuth pode ajudar a criar uma melhor verificação de permissão em toda a base de usuários.
Consulte uma equipe de especialistas em serviços personalizados de desenvolvimento de software para criar aplicativos seguros e confiáveis para todos.
Por favor, compartilhe seus pensamentos na seção de comentários; ficaríamos felizes em discuti-los.