Correggere la route proxy lato server in un accesso OIDC di ASP.NET Core
Impostate BackchannelHttpHandler sullo schema OpenID Connect registrato per le richieste di discovery e di token, a meno che l'app non fornisca un client Backchannel completo.
Il fatto che un browser raggiunga la pagina di accesso del provider di identità non dimostra che il server ASP.NET Core possa recuperare i metadati del provider o scambiare un token. Quelle richieste lato server usano il canale inverso di OpenID Connect.
Per uno schema esistente chiamato oidc, configurate il relativo gestore durante la configurazione dei servizi, prima che inizino le richieste di autenticazione:
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")
};
});Sostituite oidc con il nome effettivo dello schema registrato. Mantenete le impostazioni di authority, client e convalida del token. Se il proxy richiede un account, collegate le credenziali previste a WebProxy.
Verificate se l'app fornisce già options.Backchannel come HttpClient completo. In tal caso, configurate direttamente la route di quel client: ASP.NET Core usa BackchannelHttpHandler quando crea il proprio canale inverso predefinito, non per sostituire un client già fornito.
Usate la richiesta di discovery o di token non riuscita del server per valutare questa impostazione. Per una route HTTP pubblica, la lista di proxy HTTP offre candidati per l'indirizzo WebProxy. La policy proxy del browser e i client HTTP non correlati hanno i propri percorsi di configurazione.