Sửa tuyến proxy phía máy chủ trong đăng nhập OIDC của ASP.NET Core
Đặt BackchannelHttpHandler trên lược đồ OpenID Connect đã đăng ký cho việc khám phá và yêu cầu token, trừ khi ứng dụng cung cấp một ứng dụng khách Backchannel đầy đủ.
Việc trình duyệt đến được trang đăng nhập của nhà cung cấp danh tính không chứng minh máy chủ ASP.NET Core có thể lấy siêu dữ liệu của nhà cung cấp hoặc trao đổi token. Những yêu cầu phía máy chủ đó dùng backchannel của OpenID Connect.
Với một lược đồ hiện có tên oidc, hãy cấu hình trình xử lý của nó trong lúc thiết lập dịch vụ, trước khi các yêu cầu xác thực bắt đầu:
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")
};
});Thay oidc bằng tên thật của lược đồ đã đăng ký. Giữ nguyên các cài đặt authority, client và kiểm tra token. Nếu proxy yêu cầu tài khoản, hãy gắn thông tin đăng nhập dự định vào WebProxy.
Kiểm tra xem ứng dụng đã cung cấp options.Backchannel như một HttpClient hoàn chỉnh chưa. Nếu có, hãy cấu hình tuyến của ứng dụng khách đó trực tiếp: ASP.NET Core dùng BackchannelHttpHandler khi tạo backchannel mặc định của nó, không phải để thay thế một ứng dụng khách đã được cung cấp.
Dùng yêu cầu khám phá hoặc token thất bại của máy chủ để đánh giá cài đặt này. Với tuyến HTTP công khai, danh sách proxy HTTP cung cấp ứng viên cho địa chỉ WebProxy. Chính sách proxy của trình duyệt và các ứng dụng khách HTTP không liên quan có đường cấu hình riêng.