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

IdentityServer4 Logo

Este é o IdentityServer4, um framework que lida com OAuth 2.0 e é feito com .NET Core 2.

Angular

Angular Logo

Confira o Angular! Este framework JavaScript da Google é bem popular entre os desenvolvedores.

OpenId Connect

OpenId Logo

Aqui está o OpenID Connect, que adiciona uma camada extra ao já famoso protocolo OAuth 2.0.

Pacotes Angular OIDC

OpenID Certified

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.

Show me the code

Nosso projeto final tem a seguinte arquitetura:

IdentityServer4 with OIDC Angular

Pré-requisitos

Antes de começar, você vai precisar de:

Novo projeto

Para começar, crie uma nova Blank Solution e chame de IdentityServer4AngularOIDC.

New Solution

Adicione um novo projeto ASP.NET Core Web Application do tipo Empty, chamado Server.

Add New Project

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

Clippy Octocat

O código está no meu GitHub.

Referências

Quer saber mais?

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!