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 идва от Microsoft.IdentityModel.Protocols; OpenIdConnectConfigurationRetriever идва от пакета OpenIdConnect. Дръжте HTTP клиента жив за целия му работен цикъл. За публични discovery и JWKS адреси, където са разрешени публични посредници, списъкът с HTTP проксита предлага кандидати за адреса на WebProxy.

Търсенето първо изтегля discovery и след това използва същия подаден retriever за jwks_uri, когато е наличен. Тези адреси може да са на различни хостове и проксито трябва да разрешава и двата.

За удостоверяване пред проксито настройте акаунта на WebProxy преди създаването. Това не е клиентска тайна на издателя.

В дълготрайна услуга за удостоверяване предоставете този retriever на поддържаната схема за кеширане и опресняване, вместо да изтегляте конфигурацията при всяка входяща заявка. Пазете политиката за издател, HTTPS доверие и валидиране на токени независима от този избор на транспорт.

Подобни статии