Die serverseitige Proxy-Route bei einer ASP.NET Core OIDC-Anmeldung korrigieren
Legen Sie BackchannelHttpHandler im registrierten OpenID Connect-Schema für Discovery- und Tokenanforderungen fest, sofern die App keinen vollständigen Backchannel-Client bereitstellt.
Dass ein Browser die Anmeldeseite des Identitätsanbieters erreicht, belegt nicht, dass der ASP.NET Core-Server die Metadaten des Anbieters abrufen oder ein Token austauschen kann. Diese serverseitigen Anforderungen nutzen den OpenID Connect-Backchannel.
Konfigurieren Sie für ein vorhandenes Schema namens oidc seinen Handler während der Dienstkonfiguration, bevor Authentifizierungsanforderungen beginnen:
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")
};
});Ersetzen Sie oidc durch den tatsächlichen registrierten Schemanamen. Behalten Sie die Einstellungen für Authority, Client und Tokenvalidierung bei. Wenn der Proxy ein Konto verlangt, hängen Sie die vorgesehenen Anmeldeinformationen an WebProxy an.
Prüfen Sie, ob die App bereits options.Backchannel als vollständiges HttpClient bereitstellt. Wenn ja, konfigurieren Sie die Route dieses Clients direkt: ASP.NET Core verwendet BackchannelHttpHandler, wenn es seinen Standard-Backchannel erstellt, nicht um einen bereits bereitgestellten Client zu ersetzen.
Nutzen Sie die fehlgeschlagene Discovery- oder Tokenanforderung des Servers, um diese Einstellung zu bewerten. Für eine öffentliche HTTP-Route bietet die HTTP-Proxy-Liste Kandidaten für die WebProxy-Adresse. Proxy-Richtlinien des Browsers und unabhängige HTTP-Clients haben eigene Konfigurationswege.