ASP.NET Core JWT Bearer: наладзіць backchannel-проксі для метаданых
Выкарыстоўвайце BackchannelHttpHandler да пачатку загрузкі, калі поўны кліент або ўласны менеджар канфігурацыі ўжо не валодае гэтым транспартам.
API можа атрымаць bearer-токен і збаіць пры загрузцы метаданых і ключа подпісу з сервера. Наладзьце гэтую схему JWT bearer пасля яе існуючай рэгістрацыі і да запытаў:
using System.Net;
using Microsoft.AspNetCore.Authentication.JwtBearer;
builder.Services.Configure<JwtBearerOptions>(
JwtBearerDefaults.AuthenticationScheme, options =>
{
options.BackchannelHttpHandler = new HttpClientHandler
{
UseProxy = true,
Proxy = new WebProxy("http://proxy.example:8080")
};
});Супастаўце зарэгістраванае імя; калі яно адрозніваецца ад тыповага Bearer, выкарыстоўвайце фактычнае імя. Захавайце Authority, Audience і існуючыя параметры токена. Публічная канчатковая кропка метаданых і ключа подпісу можа выкарыстаць кандыдата са спісу HTTP-проксі для гэтага WebProxy URL без уліковага запісу, калі доступ праз публічныя проксі дазволены.
У стандартнай наладзе post-configuration стварае backchannel з гэтага handler. Калі поўны Backchannel або ўласны ConfigurationManager ужо дае retriever, наладзьце замест гэтага той аб’ект. Уласцівасць handler не перакрывае абодва.
Любы ўліковы запіс проксі задавайце ў WebProxy да выкарыстання, а не праз змену Proxy унутры SendAsync. Захавайце issuer, audience, подпіс, тэрмін дзеяння і дадатковыя валідатары. Уваход OIDC і асобнае атрыманне токена захоўваюць свае HTTP-шляхі.