Descubrimiento OIDC mediante proxy y JWKS en .NET con HttpDocumentRetriever
Inyecte el HttpClient consciente del proxy en el retriever que usa la búsqueda de configuración de Microsoft.IdentityModel, manteniendo intacta la política de actualización y validación.
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 procede de Microsoft.IdentityModel.Protocols; OpenIdConnectConfigurationRetriever procede de su paquete OpenIdConnect. Mantenga vivo el cliente HTTP durante toda su carga de trabajo. Para direcciones públicas de discovery y JWKS donde se permiten intermediarios públicos, la lista de proxies HTTP ofrece candidatos para la URL de WebProxy.
La búsqueda obtiene primero el discovery y luego utiliza el mismo retriever suministrado para jwks_uri, cuando está presente. Esas URL pueden tener hostos distintos y el proxy debe permitir ambos.
Para la autenticación del proxy, configure la cuenta de WebProxy antes de construirlo. No es un secreto de cliente del emisor.
En un servicio de autenticación de larga duración, entregue este retriever al mecanismo de caché y actualización admitido en lugar de descargar la configuración en cada solicitud entrante. Mantenga la política de emisor, confianza HTTPS y validación de tokens independiente de esta elección de transporte.