Por que o single sign-on (SSO) é melhor
O single sign-on (SSO) é uma ótima maneira de simplificar o modelo de autenticação e melhorar a experiência do usuário para cada aplicativo. Eis o porquê.
O single sign-on (SSO) é uma tecnologia que permite aos usuários autenticar-se uma vez e acessar várias aplicações. Se você possui apenas uma aplicação, isso pode parecer um exagero. No entanto, começar com o SSO desde o início pode poupar muitas dores de cabeça no futuro, e implementar o SSO é mais fácil do que você pensa.
Antes de começarmos, precisamos notar que existem dois tipos de SSO:
- O primeiro tipo é quando você tem várias aplicações que compartilham o mesmo banco de dados de usuários. Este é o tipo de SSO que discutiremos neste artigo.
- O segundo tipo é quando seu cliente tem um provedor de identidade centralizado (IdP) e você precisa se integrar a ele. Isso está fora do escopo deste artigo.
Por que SSO?
Simplificar o modelo de autenticação
O benefício mais óbvio do SSO é que ele simplifica o modelo de autenticação. Imagine que você comece com uma loja online, o modelo de autenticação inicial é direto:
À medida que seu negócio cresce, você decide adicionar um aplicativo de gestão de loja para permitir que os donos das lojas gerenciem suas lojas. Agora você tem duas aplicações que precisam autenticar usuários.
Aqui estão algumas escolhas que você tem:
1. Você pode criar um banco de dados de usuários separado para o aplicativo de gestão de loja.
Esta é a solução mais simples, mas isso significa que você precisa implementar o processo de autenticação para o aplicativo de gestão de loja e os usuários têm que criar uma nova conta para usar o aplicativo.
2. Você pode usar o mesmo banco de dados de usuários para ambas as aplicações.
Esta é uma solução melhor porque os usuários não precisam criar uma nova conta. No entanto, você ainda precisa implementar o processo de autenticação para o aplicativo de gestão de loja.
3. Você pode usar o SSO.
Esta é a melhor solução até agora. Você não precisa implementar outro processo de autenticação e os usuários não precisam criar uma nova conta para o aplicativo de gestão de loja. Além disso, você pode adicionar mais aplicações e métodos de acesso sem mudar o modelo de autenticação ou a experiência do usuário.
Melhorar a experiência do usuário
O SSO melhora a experiência do usuário de duas maneiras:
- Usuários podem compartilhar a mesma conta em várias aplicações.
- Uma vez que os usuários entram em uma aplicação, eles não precisam entrar novamente em outras aplicações no mesmo dispositivo.
Algumas preocupações podem surgir aqui, mas todas elas podem ser endereçadas.
1. Como diferenciar aplicações?
Singular sign-on não significa que tratamos todas as aplicações da mesma maneira. No conhecido padrão aberto OpenID Connect, cada aplicação é chamada de cliente, e os fluxos de autenticação diferem dependendo do tipo de cliente. Embora os usuários finais não precisem saber a diferença, o tipo de cliente é importante para o servidor de autenticação determinar o fluxo de autenticação.
2. E se os usuários não quiserem compartilhar a mesma conta?
Esta é uma preocupação válida, mas não é um problema com o SSO. Se os usuários não quiserem compartilhar a mesma conta, eles podem criar uma nova conta para a nova aplicação. O importante é dar aos usuários a opção de escolher.
3. E se eu precisar restringir o acesso a determinadas aplicações?
Na verdade, o SSO é uma técnica para autenticação, enquanto o controle de acesso é para autorização. O SSO pode ser desacoplado do controle de acesso. Por exemplo, você pode usar o SSO para autenticar usuários e depois usar controle de acesso baseado em papéis (RBAC) para restringir o acesso a certas aplicações ou recursos.
Para saber mais sobre autenticação e autorização, confira CIAM 101: Autenticação, Identidade, SSO.
4. O SSO requer redirecionamento de usuários para o servidor de autenticação.
Redirecionar é uma prática padrão para autenticação. Considerando a experiência do usuário, podemos alavancar várias técnicas para reduzir o atrito:
- Use tokens de atualização para reduzir a frequência de autenticação.
- Inicialize o processo de autenticação com um método de login específico, como Google ou Facebook, para reduzir o número de cliques.
- Utilize a autenticação silenciosa para acelerar o processo de autenticação.
Aumentar a segurança
1. Um lugar central para todas as operações relacionadas à segurança
O SSO permite que você gerencie todas as operações relacionadas à segurança em um lugar central. Por exemplo, como mencionamos na seção anterior, o SSO ainda pode diferenciar aplicações e aplicar fluxos de autenticação específicos da plataforma para cada aplicação. Sem SSO, você precisa implementar vários fluxos de autenticação de acordo com o tipo de aplicação.
Além disso, recursos avançados de segurança, como autenticação multifator (MFA), são mais fáceis de implementar com SSO sem bagunçar o modelo de autenticação.
2. Superfície de ataque reduzida
Em teoria, o SSO reduz a superfície de ataque porque você só precisa proteger um servidor de autenticação em vez de várias aplicações. A abordagem centralizada também facilita o monitoramento e a detecção de atividades suspeitas.
3. Padrões e protocolos testados em batalha
Padrões e protocolos abertos, como OpenID Connect e OAuth 2.0, são amplamente usados na indústria e foram testados em batalha por anos. Ambos combinam com o conceito de SSO e são suportados pela maioria dos provedores de identidade (IdPs). Ao combinar esses padrões com o SSO, você pode ter um sistema de autenticação seguro e confiável.
OK, vamos implementar o SSO
Implementar o SSO pode ser grande e complicado, há muitas coisas a considerar, como:
- Conformidade com padrões e protocolos
- Fluxos de autenticação para diferentes tipos de clientes
- Múltiplos métodos de login
- Recursos de segurança como MFA
- Experiência do usuário
- Controle de acesso
Cada um desses tópicos pode ser um artigo separado e avassalador. Para simplificar, é melhor começar com um serviço gerenciado que forneça SSO pronto para uso. Nosso produto Logto é um desses serviços, e levará apenas alguns minutos para integrá-lo em sua aplicação.
Uma das preocupações mais comuns ao usar um serviço gerenciado é o bloqueio do fornecedor. Felizmente, isso não é um problema com o Logto. O Logto é construído sobre o OpenID Connect e o OAuth 2.0, e é desenvolvido como open-source. Nós priorizamos fornecer segurança aos nossos clientes e visamos capacitar você com a liberdade de escolha.