Виявлення 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 і перевірки токенів незалежною від цього вибору транспорту.