Пошук 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 і праверкі токенаў незалежнай ад гэтага выбару транспарту.