Por que o login único (SSO) é melhor
O login único (SSO) é uma excelente forma de simplificar o modelo de autenticação e melhorar a experiência do utilizador para cada aplicação. Eis porquê.
O login único (SSO) é uma tecnologia que permite aos utilizadores autenticar-se uma vez e aceder a múltiplas aplicações. Se só tiveres uma aplicação, pode parecer um exagero. No entanto, começar com o SSO desde o início pode poupar-te muitas dores de cabeça no futuro, e implementar o SSO é mais fácil do que pensas.
Antes de começarmos, precisamos de notar que existem dois tipos de SSO:
- O primeiro tipo ocorre quando tens várias aplicações que partilham a mesma base de dados de utilizadores. Este é o tipo de SSO que discutiremos neste artigo.
- O segundo tipo é quando o teu cliente tem um fornecedor centralizado de identidade (IdP) e precisas de integrar-te com ele. Isto está fora do âmbito deste artigo.
Por que o SSO?
Simplificar o modelo de autenticação
O benefício mais óbvio do SSO é que ele simplifica o modelo de autenticação. Imagina que começas com uma loja online, o modelo de autenticação inicial é simples:
À medida que o teu negócio cresce, decides adicionar uma aplicação de gestão de lojas para permitir que os proprietários de lojas gerenciem suas lojas. Agora tens duas aplicações que precisam autenticar utilizadores.
Aqui estão algumas escolhas que tens:
1. Podes criar uma base de dados de utilizadores separada para a aplicação de gestão de lojas.
Esta é a solução mais simples, mas significa que precisas implementar o processo de autenticação para a aplicação de gestão de lojas e os utilizadores terão de criar uma nova conta para usar a aplicação.
2. Podes usar a mesma base de dados de utilizadores para ambas as aplicações.
Esta é uma solução melhor porque os utilizadores não precisam criar uma nova conta. No entanto, ainda precisas implementar o processo de autenticação para a aplicação de gestão de lojas.
3. Podes usar SSO.
Esta é a melhor solução até agora. Não precisas implementar outro processo de autenticação e os utilizadores não precisam criar uma nova conta para a aplicação de gestão de lojas. Além disso, podes adicionar mais aplicações e métodos de início de sessão sem alterar o modelo de autenticação ou a experiência do utilizador.
Melhorar a experiência do utilizador
O SSO melhora a experiência do utilizador de duas maneiras:
- Os utilizadores podem partilhar a mesma conta entre várias aplicações.
- Uma vez que os utilizadores iniciem sessão numa aplicação, não precisam voltar a iniciar sessão noutras aplicações no mesmo dispositivo.
Algumas preocupações podem surgir aqui, mas todas são resolvíveis.
1. Como diferenciar as aplicações?
Login único 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 conforme o tipo de cliente. Embora os utilizadores 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 utilizadores não quiserem partilhar a mesma conta?
Esta é uma preocupação válida, mas não é um problema com o SSO. Se os utilizadores não quiserem partilhar a mesma conta, podem criar uma nova conta para a nova aplicação. A chave é dar aos utilizadores a opção de escolher.
3. E se eu precisar restringir o acesso a certas aplicações?
De facto, o SSO é uma técnica para autenticação, enquanto o controlo de acesso é para autorização. O SSO pode ser dissociado do controlo de acesso. Por exemplo, podes usar SSO para autenticar utilizadores e, em seguida, usar o controlo de acesso baseado em funções (RBAC) para restringir o acesso a certas aplicações ou recursos.
Para saber mais sobre autenticação e autorização, consulta CIAM 101: Autenticação, Identidade, SSO.
4. O SSO requer redirecionar utilizadores para o servidor de autenticação.
Redirecionar é uma prática padrão para autenticação. Considerando a experiência do utilizador, podemos aproveitar diversas técnicas para reduzir o atrito:
- Usar tokens de atualização para reduzir a frequência da autenticação.
- Iniciar o processo de autenticação com um método específico de início de sessão, como Google ou Facebook, para reduzir o número de cliques.
- Aproveitar a autenticação silenciosa para acelerar o processo de autenticação.
Aumentar a segurança
1. Um local central para todas as operações relacionadas à segurança
O SSO permite gerir todas as operações relacionadas à segurança num lugar central. Por exemplo, como mencionamos na secção anterior, o SSO ainda pode diferenciar aplicações e aplicar fluxos de autenticação específicos de plataforma para cada aplicação. Sem SSO, precisas 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 a autenticação multi-fatores (MFA) são mais fáceis de implementar com SSO sem complicar o modelo de autenticação.
2. Superfície de ataque reduzida
Em teoria, o SSO reduz a superfície de ataque porque só precisas proteger um servidor de autenticação em vez de múltiplas aplicações. A abordagem centralizada também facilita a monitorização e deteção de atividades suspeitas.
3. Normas e protocolos testados e comprovados
Normas e protocolos abertos como OpenID Connect e OAuth 2.0 são amplamente utilizados na indústria e foram testados ao longo dos anos. Ambos correspondem ao conceito de SSO e são suportados pela maioria dos fornecedores de identidade (IdPs). Ao combinar essas normas com o SSO, podes ter um sistema de autenticação seguro e confiável.
OK, vamos implementar o SSO
Implementar o SSO pode ser algo grande e complicado, existem muitas coisas a considerar, tais como:
- Conformidade com normas e protocolos
- Fluxos de autenticação para diferentes tipos de clientes
- Vários métodos de início de sessão
- Recursos de segurança como MFA
- Experiência do utilizador
- Controlo de acesso
Cada um destes tópicos pode ser um artigo separado e avassalador. Para simplificar, é melhor começar com um serviço gerido que ofereça SSO pronto a usar. O nosso produto Logto é esse tipo de serviço, e levará apenas alguns minutos para integrá-lo na tua aplicação.
Uma das preocupações mais comuns ao usar um serviço gerido é a dependência do fornecedor. Felizmente, isso não é um problema com o Logto. O Logto é construído com base no OpenID Connect e OAuth 2.0, e é feito para ser open-source. Priorizamos oferecer garantia aos nossos clientes e pretendemos capacitá-los com a liberdade de escolha.