Corriger la route proxy côté serveur dans une connexion OIDC ASP.NET Core
Définissez BackchannelHttpHandler sur le schéma OpenID Connect enregistré pour les requêtes de découverte et de jeton, sauf si l'application fournit un client Backchannel complet.
Le fait qu'un navigateur atteigne la page de connexion du fournisseur d'identité ne prouve pas que le serveur ASP.NET Core peut récupérer les métadonnées du fournisseur ou échanger un jeton. Ces requêtes côté serveur utilisent le canal arrière d'OpenID Connect.
Pour un schéma existant nommé oidc, configurez son gestionnaire lors de la configuration des services, avant que les requêtes d'authentification ne commencent :
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")
};
});Remplacez oidc par le nom réel du schéma enregistré. Conservez les paramètres d'authority, de client et de validation du jeton. Si le proxy exige un compte, attachez les identifiants prévus à WebProxy.
Vérifiez si l'application fournit déjà options.Backchannel comme un HttpClient complet. Si c'est le cas, configurez directement la route de ce client : ASP.NET Core utilise BackchannelHttpHandler lors de la création de son canal arrière par défaut, et non pour remplacer un client déjà fourni.
Utilisez la requête de découverte ou de jeton en échec du serveur pour évaluer ce paramètre. Pour une route HTTP publique, la liste de proxys HTTP propose des candidats pour l'adresse WebProxy. La politique de proxy du navigateur et les clients HTTP sans rapport ont leurs propres chemins de configuration.