Descoberta OIDC via proxy e JWKS em .NET com HttpDocumentRetriever
Injete o HttpClient ciente do proxy no retriever usado pela pesquisa de configuração do Microsoft.IdentityModel, mantendo intacta a política de atualização e validação.
var handler = new HttpClientHandler
{
Proxy = new WebProxy("http://proxy.example:8080"),
UseProxy = true
};
var http = new HttpClient(handler);
var documents = new HttpDocumentRetriever(http);
var configuration = await OpenIdConnectConfigurationRetriever.GetAsync(
"https://issuer.example/.well-known/openid-configuration",
documents,
cancellationToken);HttpDocumentRetriever vem de Microsoft.IdentityModel.Protocols; OpenIdConnectConfigurationRetriever vem do respetivo pacote OpenIdConnect. Mantenha o cliente HTTP ativo durante toda a sua carga de trabalho. Para URLs públicas de discovery e JWKS onde intermediários públicos são permitidos, a lista de proxies HTTP oferece candidatos para o URL do WebProxy.
A pesquisa obtém primeiro o discovery e depois usa o mesmo retriever fornecido para jwks_uri, quando presente. Esses URL podem estar em anfitriões diferentes, e o proxy deve permitir ambos.
Para autenticação no proxy, configure a conta de WebProxy antes da construção. Não é um segredo de cliente do emissor.
Num serviço de autenticação de longa duração, entregue este retriever ao mecanismo de cache e atualização suportado em vez de descarregar a configuração em cada pedido recebido. Mantenha a política de emissor, confiança HTTPS e validação de tokens independente desta escolha de transporte.