Proxy-OIDC-Discovery und JWKS in .NET mit HttpDocumentRetriever
Den proxyfähigen HttpClient in den Retriever einsetzen, den die Konfigurationssuche von Microsoft.IdentityModel nutzt – ohne die Refresh- und Validierungsrichtlinie zu verändern.
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 stammt aus Microsoft.IdentityModel.Protocols; OpenIdConnectConfigurationRetriever stammt aus dessen OpenIdConnect-Paket. Halten Sie den HTTP-Client für seine gesamte Laufzeit aktiv. Für öffentliche Discovery- und JWKS-URLs, bei denen öffentliche Vermittler zulässig sind, liefert die HTTP-Proxy-Liste Kandidaten für die WebProxy-URL.
Die Suche lädt zuerst die Discovery und nutzt dann denselben übergebenen Retriever für jwks_uri, sofern vorhanden. Diese URLs können auf verschiedenen Hosts liegen, und der Proxy muss beide zulassen.
Für die Proxy-Authentifizierung konfigurieren Sie das Konto von WebProxy vor der Konstruktion. Es ist kein Client-Geheimnis des Ausstellers.
In einem langlebigen Authentifizierungsdienst übergeben Sie diesen Retriever an die unterstützte Cache- und Refresh-Regelung, statt die Konfiguration für jede eingehende Anfrage herunterzuladen. Halten Sie Aussteller-, HTTPS-Vertrauens- und Token-Validierungsrichtlinie unabhängig von dieser Transportwahl.