Scoperta OIDC tramite proxy e JWKS in .NET con HttpDocumentRetriever
Iniettare l'HttpClient consapevole del proxy nel retriever usato dalla ricerca di configurazione di Microsoft.IdentityModel, mantenendo intatta la politica di aggiornamento e convalida.
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 proviene da Microsoft.IdentityModel.Protocols; OpenIdConnectConfigurationRetriever proviene dal relativo pacchetto OpenIdConnect. Mantenere attivo il client HTTP per tutta la durata del lavoro. Per gli URL pubblici di discovery e JWKS in cui sono ammessi intermediari pubblici, la lista di proxy HTTP offre candidati per l'URL WebProxy.
La ricerca recupera prima il discovery e poi usa lo stesso retriever fornito per jwks_uri, quando presente. Tali URL possono trovarsi su host diversi e il proxy deve consentirli entrambi.
Per l'autenticazione al proxy, configurare l'account di WebProxy prima della costruzione. Non è un segreto client dell'emittente.
In un servizio di autenticazione di lunga durata, affidare questo retriever al meccanismo di cache e aggiornamento supportato invece di scaricare la configurazione a ogni richiesta in ingresso. Mantenere la politica su emittente, fiducia HTTPS e convalida dei token indipendente da questa scelta di trasporto.