Um servidor de identidades é um artefato de sofware que centraliza os dados de usuários, bem como o processo para autorização, reduzindo a complexidade de desenvolvimento enquanto melhora a experiência de uso.
Se você quer começar a escrever microsserviços e não sabe como, recomendo que considere escrever um servidor de identidades (usando IdentityServer4 ou não).
Neste post, compartilho algumas razões para isso.
Se tiver interesse em entender mais sobre microsserviços, recomendo que acesse o Guia de Conteúdo para Microsserviços deste site.
1. É extremamente útil
A grande maioria das aplicações comerciais utiliza algum mecanismo de autenticação e autorização de usuários.
Mesmo que você já tenha esse problema “resolvido”, é provável que você possa adicionar mais valor ao negócio modernizando a forma como os dados dos usuários são mantidos e atualizados.
Entre as vantagens naturais de se utilizar um servidor de autenticação podemos destacar:
- Single Sign-on (evitando duplicação de código e dados)
- Adoção de autorização baseada em Claims
- Compatibilidade retroativa com modelos Role-Based
- Aumento potencial da segurança dos dados
- Adoção simplificada de serviços externos de autenticação (como Google, Facebook, etc)
- Adequação a protocolos consagrados e amplamente aceitos, como OpenID e OAuth2
2. É um exemplo perfeito de microsserviço
Um bom servidor de identidades tem um propósito simples e claro: manter e fornecer dados de usuários devidamente autenticados, provendo informações adequadas para que cada aplicação implemente suas políticas de autorização.
Os dados armazenados pelo servidor de identidades podem e devem ser mantidos em um banco de dados dedicado a este propósito (como recomendado para microsserviços).
OAuth2 e OpenID são protocolos (potencialmente) implementáveis em praticamente todas as linguagens/frameworks disponíveis. Isso significa que você pode escrever seu microsserviço na tecnologia que considerar mais conveniente sem maiores implicações para o restante da sua base de código.
O servidor de identidades poderá ser mantido em repositório independente e poderá ser distribuído de forma indepentente também.
3. Você vai precisar de um mais cedo ou mais tarde
Se você for migrar para um modelo baseado em microsserviços, precisará garantir algum nível de segurança de acesso aos serviços.
Ingenuamente, você pode ficar tentado a postergar a implementação de “segurança” para o último momento responsável. Entretanto, é importante que você saiba que o último momento responsável é exatamente o início do projeto.
4. Há ampla documentação disponível para você aprender
Mesmo que você não entenda nada sobre segurança, existem excelentes guias para implementação.
Se você utiliza .NET, comece “ontem” a estudar IdentityServer4. O material on-line disponível é muito bom. Mesmo assim, você precisará de algum tempo até se sentir confortável.
Próximos passos
Minha recomendação? Comece agora a seguir a documentação do IdentityServer4 e crie seu primeiro microsserviço útil. Você irá sentir algumas dificuldades, mas valerá a pena.
A propósito, recomendo que faça isso seguindo as recomendações que fiz outro dia.