Виправлення серверного маршруту проксі під час входу OIDC в ASP.NET Core
Задайте BackchannelHttpHandler у зареєстрованій схемі OpenID Connect для виявлення та запитів токенів, якщо застосунок не надає готовий клієнт Backchannel.
Те, що браузер відкриває сторінку входу постачальника ідентичності, не доводить, що сервер ASP.NET Core може отримати метадані постачальника або обміняти токен. Ці серверні запити використовують backchannel OpenID Connect.
Для наявної схеми з назвою oidc налаштуйте її обробник під час конфігурування служб, до початку запитів автентифікації:
services.Configure<Microsoft.AspNetCore.Authentication.OpenIdConnect
.OpenIdConnectOptions>("oidc", options =>
{
options.BackchannelHttpHandler =
new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = new System.Net.WebProxy(
"http://proxy.example.net:8080")
};
});Замініть oidc фактичною назвою зареєстрованої схеми. Збережіть налаштування authority, client і перевірки токена. Якщо проксі потребує облікового запису, приєднайте потрібні облікові дані до WebProxy.
Перевірте, чи застосунок уже надає options.Backchannel як повний HttpClient. Якщо так, налаштуйте маршрут цього клієнта безпосередньо: ASP.NET Core використовує BackchannelHttpHandler під час створення свого backchannel за замовчуванням, а не для заміни вже наданого клієнта.
Оцінюйте це налаштування за невдалим запитом виявлення або токена на сервері. Для публічного HTTP-маршруту список HTTP-проксі дає кандидатів для адреси WebProxy. Політика проксі браузера та не пов’язані клієнти HTTP мають власні шляхи налаштування.