ASP .net ядро ​​аутентификации jwt с прокси - PullRequest
0 голосов
/ 30 января 2019

Я реализую веб-API ядра asp .net для своей компании.Аутентификация должна быть обработана с помощью встроенной аутентификации на носителе jwt.

Проблема, с которой я борюсь, заключается в том, что я работаю за прокси-сервером.Так что для проверки токена я сталкиваюсь с ошибками 407 аутентификации прокси.

Насколько я знаю, в .net framework была возможность определить прокси по умолчанию в web.config, но для ядра .net я не смог найти подобную функциональность.

Можно ли "ввести" параметры прокси-сервера для аутентификации jwt или нет, есть ли другой способ работы с этой аутентификацией за прокси-сервером?

1 Ответ

0 голосов
/ 22 июля 2019

Опция определения глобального прокси в Web.config для ASP.NET Core отсутствует.

Однако большинство API, которые делают что-либо через HTTP, позволяют вам устанавливать HttpMessageHandler.Вы можете установить прокси для этого MessageHandler.

Например, если вы используете аутентификацию JwtBearer по умолчанию, вы можете попробовать этот подход:

appsettings.json:

"Proxy": {
    "ProxyAddress": "http://MyProxy:8080"
  },

В вашем методе ConfigureServices вы можете:

services.AddAuthentication()
   .AddJwtBearer("Bearer", o =>
   {
      o.BackchannelHttpHandler = new HttpClientHandler
      {
         Proxy = new WebProxy(Configuration["Proxy:ProxyAddress"])
      };
  });

В зависимости от того, какой поток вы используете, вам также может понадобиться установить Proxy на другие / дополнительные обработчики.Кроме того, если вам требуется более детальный контроль над прокси-сервером, вы всегда можете написать класс, реализующий IWebProxy, и использовать его вместо обновления WebProxy с адресом прокси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...