Descoperirea OIDC prin proxy și JWKS în .NET cu HttpDocumentRetriever
Injectați HttpClient conștient de proxy în retrieverul folosit de căutarea configurației Microsoft.IdentityModel, păstrând politica de reîmprospătare și validare.
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 provine din Microsoft.IdentityModel.Protocols; OpenIdConnectConfigurationRetriever provine din pachetul său OpenIdConnect. Păstrați clientul HTTP activ pe toată durata lucrului. Pentru adrese publice de discovery și JWKS unde sunt permiteți intermediari publici, lista de proxy HTTP oferă candidați pentru adresa WebProxy.
Căutarea preia mai întâi discovery, apoi folosește același retriever furnizat pentru jwks_uri, când există. Aceste adrese pot fi pe gazde diferite, iar proxyul trebuie să le permită pe ambele.
Pentru autentificarea la proxy, configurați contul WebProxy înainte de construire. Nu este un secret de client al emitentului.
Într-un serviciu de autentificare de lungă durată, dați acest retriever mecanismului de cache și reîmprospătare acceptat în loc să descărcați configurația la fiecare cerere primită. Păstrați politica privind emitentul, încrederea HTTPS și validarea tokenurilor independentă de această alegere de transport.