ASP.NET Core JWT Bearer: Metadaten-Backchannel-Proxy setzen
Verwenden Sie BackchannelHttpHandler vor dem Abruf, sofern nicht ein vollständiger Client oder ein eigener Konfigurationsmanager diesen Transport bereits besitzt.
Eine API kann ein Bearer-Token empfangen und beim Herunterladen von Metadaten und Signaturschlüssel des Servers scheitern. Konfigurieren Sie dieses JWT-Bearer-Schema nach seiner bestehenden Registrierung und vor den Anfragen:
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")
};
});Stimmen Sie den registrierten Namen ab; weicht er vom Standard-Bearer ab, verwenden Sie seinen tatsächlichen Namen. Behalten Sie Authority, Audience und die bestehenden Token-Parameter. Ein öffentlicher Endpunkt für Metadaten und Signaturschlüssel kann für diese WebProxy-URL ohne Konto einen Kandidaten aus der HTTP-Proxy-Liste verwenden, wenn der Zugriff über öffentliche Proxys erlaubt ist.
In der Standardeinrichtung erstellt die Post-Konfiguration den Backchannel aus diesem Handler. Wenn ein vollständiger Backchannel oder ein eigener ConfigurationManager den Abruf bereits liefert, konfigurieren Sie stattdessen dieses Objekt. Die Handler-Eigenschaft überschreibt nicht beides.
Setzen Sie jedes Proxy-Konto vor der Nutzung auf WebProxy, nicht durch Ändern von Proxy innerhalb von SendAsync. Behalten Sie Issuer, Audience, Signatur, Laufzeit und zusätzliche Validatoren. OIDC-Anmeldung und separate Token-Beschaffung behalten ihre eigenen HTTP-Pfade.