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.

Articoli correlati