[IdentityServer] Erro HTTP Error 400. The size of the request headers is too long

[IdentityServer] Erro HTTP Error 400. The size of the request headers is too long

Olá PessoALL,

No projeto que trabalho temos varios modulos independentes que utilizam o IdentityServer para Single Sign On.

Nesse caso em específico, devido ao grande número de grupos/perfis que o usuário possuía uma quantidade enorme de claims era retornada e a aplicação sempre retornava um erro 400 falando que os headers estavam muito grandes.

Após muita pesquisa conseguimos encontrar a seguinte thread no StackOverflow:
http://stackoverflow.com/questions/30203596/mvc-6-openidconnect

Basicamente devido ao grande número de claims o cookie de retorno estava muito grande, na solução proposta armazenamos os dados na sessão e persistimos o id da sessão no cookie retornado para o usuário.

A solução inclusive foi retirada do repositório de exemplos oficiais da Microsoft:
https://github.com/aspnet/Security/tree/5cf0564484cf5bb2a7a16e6485816d19287538e6/samples/CookieSessionSample

Vale lembrar que essa solucao eh uma solucao retirada direta dos exemplos e vale apenas como norte, para usar em produção por exemplo deveríamos usar o cache no Redis e não em memória por exemplo. Alguns pontos devem ser considerados antes de levar a solução para produção

Espero ajudar alguém que enfrente o problema no futuro!