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

Схожі статті