OIDC откриване през прокси и JWKS в .NET с HttpDocumentRetriever
Внедрете HttpClient, който познава прокси, в retriever-а, използван от търсенето на конфигурация на Microsoft.IdentityModel, като запазите политиката за опресняване и валидиране.
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 доверие и валидиране на токени независима от този избор на транспорт.