Vamos dar uma olhada em como criar um servidor de autenticação e autorização OAuth2 com ASP.NET Core e IdentityServer. E claro, também uma aplicação Angular 6 usando OpenId Connect e o template Core UI com Bootstrap 4. Parece simples, só que não tanto!
Projeto final
Confira o que criamos aqui. Um projeto de tecnologia que dá orgulho.
ASP.NET Core
Aqui está o ASP.NET Core, o produto bacana da Microsoft. É baseado no .NET Core e funciona em várias plataformas sem depender só de APIs do Windows. Está na moda agora. Saiba mais aqui.
IdentityServer4
Este é o IdentityServer4, um framework que lida com OAuth 2.0 e é feito com .NET Core 2.
Angular
Confira o Angular! Este framework JavaScript da Google é bem popular entre os desenvolvedores.
OpenId Connect
Aqui está o OpenID Connect, que adiciona uma camada extra ao já famoso protocolo OAuth 2.0.
Pacotes Angular OIDC
Temos dois pacotes certificados pela OpenID. Porque nunca é demais ter opções, certo?
Para nosso exemplo, usaremos o primeiro.
CoreUI
O CoreUI é baseado no Bootstrap 4, é gratuito e ótimo para começar projetos em Angular 2+.
Pegue seu caderno e VEJA O CÓDIGO!
Prepare-se! Vamos mostrar como montar um sistema seguro e visualmente atraente.
Nosso projeto final tem a seguinte arquitetura:
Pré-requisitos
Antes de começar, você vai precisar de:
- .NET Core 2.1
- Angular-cli 6
- NPM 3 (ou superior)
- Node
- Visual Studio
- VSCode
- PowerShell 5 (ou superior)
Novo projeto
Para começar, crie uma nova Blank Solution e chame de IdentityServer4AngularOIDC
.
Adicione um novo projeto ASP.NET Core Web Application do tipo Empty, chamado Server.
Continue com as próximas etapas indicadas.
Identidade do Servidor
Configure o IdentityServer usando o Startup.cs
. Mais um passo para descomplicar.
Demo
Veja tudo funcionando:
Download

O código está no meu GitHub.
Referências
Quer saber mais?
- Segurança - JWT x Cookies x OAuth2 x Bearer
- ASP.NET Core
- IdentityServer4 Docs
- OpenId Connect
- angular-oauth2-oidc docs
Atualização
Parabéns ao Carlos Junior que encontrou um bug com versões antigas do PowerShell e o comando iex. Considere atualizar e baixar o QuickStart.Ui do IdentityServer4. Boa sorte!