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.

Ähnliche Artikel