Middleware de autenticação do ASP.NET Core 2.0

Com o Core 1.1, seguimos o conselho da @ blowdart e implementamos um middleware personalizado:

https://stackoverflow.com/a/31465227/29821

Funcionou assim:

O middleware foi executado. Pegou um token nos cabeçalhos da solicitação.Verificou o token e, se válido, construiu uma identidade (ClaimsIdentity) que continha várias declarações que foram adicionadas via HttpContext.User.AddIdentity ();No ConfigureServices usando services.AddAuthorization, adicionei uma política para exigir a declaração fornecida pelo middleware.Nos controladores / ações, eu usaria [Authorize (Roles = "alguma função que o middleware adicionou")]

Isso funciona um pouco com o 2.0, exceto que, se o token não for válido (etapa 2 acima) e a declaração nunca for adicionada, eu recebo "Nenhum authenticationScheme foi especificado e não foi encontrado DefaultChallengeScheme".

Então agora eu estou lendo essa autenticação alterada na 2.0:

https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/identity-2x

Qual o caminho certo para eu fazer a mesma coisa no ASP.NET Core 2.0? Não vejo um exemplo para fazer autenticação verdadeiramente personalizada.

questionAnswers(2)

yourAnswerToTheQuestion