Fiks serverproxy-ruten i en ASP.NET Core OIDC-innlogging
Sett BackchannelHttpHandler på det registrerte OpenID Connect-skjemaet for discovery- og tokenforespørsler, med mindre appen allerede har en fullstendig Backchannel-klient.
At nettleseren kommer til innloggingssiden til identitetsleverandøren, beviser ikke at ASP.NET Core-serveren kan hente leverandørens metadata eller utveksle et token. Disse serverforespørslene går via OpenID Connect-backkanalen.
For et eksisterende skjema som heter oidc, sett opp behandleren mens tjenestene konfigureres, før autentiseringsforespørslene begynner:
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")
};
});Bytt ut oidc med det faktiske navnet på det registrerte skjemaet. Behold innstillingene for authority, client og tokenvalidering. Hvis proxyen trenger en konto, fest de tiltenkte påloggingsdetaljene til WebProxy.
Sjekk om appen allerede leverer options.Backchannel som en fullstendig HttpClient. Hvis den gjør det, konfigurer ruten for den klienten direkte: ASP.NET Core bruker BackchannelHttpHandler når den lager standard-backkanalen, ikke for å erstatte en klient som allerede er levert.
Bruk serverens mislykkede discovery- eller tokenforespørsel til å vurdere denne innstillingen. For en offentlig HTTP-rute gir HTTP-proxylisten kandidater for WebProxy-adressen. Nettleserens proxyregler og urelaterte HTTP-klienter har sine egne konfigurasjonsveier.