Dados do autorizador personalizado com Amazon.Lambda.AspNetCoreServer

Tendo trabalhado extensivamente com o Node.js no passado, atualmente estamos investigando o ASP.NET Core como uma plataforma Lambda alternativa.

No passado, nossos serviços de API Gateway eram baseados em um autorizador personalizado, que autenticava o usuário e recuperava uma lista de políticas de permissão baseadas em recursos do serviço IAM da nossa empresa. O autorizador anexa essa lista aoauthContext chave. Nossos serviços se integrariam ao API Gateway via Lambda Proxy e extrairiam o objeto principal da solicitação de proxy bruto.

Ao usar o Amazon.Lambda.AspNetCoreServer para converter entre o API Gateway e o ASP.NET, não conseguimos chegar a um cenário semelhante.

Amazon.Lambda.AspNetCoreServer :: ApiGatewayProxyFunction :: FunctionHandlerAsync (Resposta do fluxoStream, ILambdaContext lambdaContext), ou qualquer assinatura equivalente do manipulador Lambda, recebe a solicitação completa e bruta no primeiro parâmetro.É possível para serializar o fluxo (por exemplo, em um JSON.NET JObject) e extrair o objeto principal lá.

No entanto, o que é difícil éacessando esses dados no aplicativo ASP.NET. Não estou convencido de que a resposta do autorizador seja passada para o contexto HTTP. Ao verificá-la, a chave do contexto ClaimsPrincipal.User não contém dados.

Várias soluções foram lançadas:

recuperando informações do IAM no FunctionHandlerAsync substituído e armazenando-as globalmente usando variáveis de ambiente ou sessõescriando uma interface e uma implementação complementar de um serviço de provedor IAM. Exporia um método para recuperar informações do IAM. A implementação retornaria simplesmente uma lista desserializada de declarações. O serviço seria configurado em um método Init (IWebHostBuilder) substituído.colando um objeto Principal (Reivindicações / Geral) e tentando transmiti-lo ao contexto HTTP

Existe uma maneira de conseguir isso de forma limpa?

questionAnswers(1)

yourAnswerToTheQuestion