Wykrywanie OIDC przez proxy i JWKS w .NET z HttpDocumentRetriever
Wstrzyknij HttpClient obsługujący proxy do retrievera używanego przez wyszukiwanie konfiguracji Microsoft.IdentityModel, zachowując politykę odświeżania i walidacji.
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 pochodzi z Microsoft.IdentityModel.Protocols; OpenIdConnectConfigurationRetriever pochodzi z jego pakietu OpenIdConnect. Utrzymuj klienta HTTP przy życiu przez cały czas jego pracy. Dla publicznych adresów discovery i JWKS, gdzie dozwolone są publiczne pośredniki, lista proxy HTTP oferuje kandydatów na adres WebProxy.
Wyszukiwanie najpierw pobiera discovery, a następnie używa tego samego dostarczonego retrievera dla jwks_uri, gdy jest obecny. Te adresy mogą mieć różne hosty, a proxy musi zezwalać na oba.
Do uwierzytelniania proxy skonfiguruj konto WebProxy przed utworzeniem. To nie jest sekret klienta wystawcy.
W długo działającej usłudze uwierzytelniania przekaż ten retriever obsługiwanemu mechanizmowi pamięci podręcznej i odświeżania zamiast pobierać konfigurację przy każdym przychodzącym żądaniu. Utrzymuj politykę wystawcy, zaufania HTTPS i walidacji tokenów niezależnie od tego wyboru transportu.