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...
IdentityServer4 é a versão mais recente do IdentityServer;
IdentityServer4 é um framework OpenID Connect e OAuth 2.0 de código-fonte aberto para o ASP.NET Core;
IdentityServer4 atua como um servidor de autenticação central para vários aplicativos;
É um componente que permite implementar conexão única e controle de acesso para aplicativos da Web e APIs modernas usando protocolos como OpenID Connect e OAuth2;
IdentityServer4 faz parte da fundação .Net;
IdentityServer4 é um software que emite tokens de segurança para os clientes;
O IdentityServer4 também pode ser usado para proteger Web APIs;
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.
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
ASP .NET Core - Criando uma aplicação com Angular 2 - Macoratti.net
ASP .NET Core - Criando uma aplicação Web no ... - Macoratti.net
ASP .NET Core - Iniciando com ASP .NET Core MVC e ... - Macoratti