ASP .NET Core - Apresentando o IdentityServer4

 Neste artigo eu vou apresentar os conceitos básicos sobre o IdentityServer4.

Atualmente implementar a segurança em sua aplicação usando apenas o nome do usuário e a senha não é suficiente para garantir a segurança.

As técnicas usadas pelos hackers evoluiram e com certeza você precisa de um sistema de autenticação e autorização mais robusto.

Além de ter um sistema de autenticação/autorização robusto, também precisamos ter uma lógica de autenticação centralizada para todos os nossos aplicativos e APIs.

Você mesmo poderia criar o seu próprio sistema de autenticação mas isso levaria muito tempo e esforço para construir esse sistema de autenticação e autorização.

Será que não existe um framework pronto que atenda nossas necessidades de autenticação e autorização ?

Sim. existe.

E o seu nome é
IdentityServer4.

Veja a documentação em : http://docs.identityserver.io/en/release/

O que é esse tal de IdentityServer4 ?

Por definição o IdentityServer4 é um framework .NET baseado no OpenID Connect, e garante que diferentes tipos de aplicações, em diferentes tecnologias, possam fazer uso do servidor de identidade rodando o IdentityServer.

Com ele podemos oferecer informações de identidade através de OAuth, oferecer segurança para APIs, autenticação de aplicações móveis, etc.

Resumindo...

Nota: O OpenID Connect é uma camada de identidade bem simples, criado sob o protocolo OAuth 2.0. Assim, o OpenID Connect implementa uma “extensão” para o protocolo OAuth 2.0 que fornece informações sobre o usuário final na forma de um id_token que verifica a identidade do usuário e fornece informações básicas de perfil do mesmo.

Dessa forma o IdentityServer4 é responsável por criar um serviço de autenticação completo, com entrada e saída de sessão única para vários tipos de aplicativos, como serviços móveis, da Web, nativos ou até mesmo outros serviços.

Usando o
IdentityServer4, precisamos apenas criar uma página de login e logout, e o resto do trabalho pode ser feito pelo middleware IdentityServer4. Assim, os aplicativos clientes podem se comunicar usando esses protocolos padrão.

Com o IdentityServer podemos configurar nosso próprio mecanismo de autenticação, por exemplo verificando email e senha no banco de dados, ou também plugar provedores externos como Facebook, Github, Google, etc.

Como funciona o IdentityServer4 ?

Na figura acima temos que :

- Usuários - são pessoas que precisam acessar os recursos de um aplicativo, APIs, etc.;
-
Clientes - são um pedaço de código que chama internamente o IdentityServer4; (as aplicações autorizadas a acessar o provedor de identidade)
    - O cliente solicita um token do IdentityServer4 para autenticar o usuário que não é nada mais que um token de identidade ou para obter acesso aos recursos que não nada mais que um token de acesso;
    - O token de identidade contém todos os dados de identidade do usuário e é usado para autenticação do usuário;
    - O token de acesso contém as informações sobre o cliente e o usuário sendo usado para acessar as APIs;
-
Recursos - são dados importantes que são protegidos - como os detalhes do usuário, senhas, impressões digitais, frases de voz do usuário, APIs etc.
- O
IdentityServer4 é usado para emitir os tokens de segurança para os clientes;

Alguns dos recursos do IdentityServer4

- Autenticação como um serviço - Lógica centralizada para login para todas as aplicações, APIs, etc.
- Pode ser usado para proteger seus recursos
- É um provedor de identidade de código aberto
- Realiza a Autenticação dos usuários e/ou clientes
- Sign-on/Sign-out único
- Pode ser usado para proteger as APIs
- Fornece gerenciamento de sessão
- Emite tokens de identidade e acesso a clientes
- Valida tokens
- Pode ser usado como gateway de entrada para provedores de identidade de terceiros, como Facebook, Google, etc.

Essa foi breve uma apresentação do IdentityServer4 e de seus recursos.

Aguarde em breve um artigo sobre como usar os recursos do IdentityServer4 no ASP .NET Core.

'Disse-lhe Jesus: Não te hei dito que, se creres, verás a glória de Deus? '
João 11:40

Referências:


José Carlos Macoratti