Скрытие IdentityServer4 за шлюзом Ocelot

Я пытаюсь решить большую проблему, разделив ее на более мелкие части. Первая проблема в том, что я не знаю, как правильно спрятаться. для этой статьи я создал простое демонстрационное приложение, которое развертывается в Docker (доступно на github). Он имеет два микросервиса внутри: OcelotGateway (проект OcelotIdentity), развернутый на localhost:7060 и микросервис IdentityServer (проект Identity), развертываемый на localhost:7050. Вот мой файл конфигурации ocelot:

{
  "ReRoutes": [
    {
      "DownstreamPathTemplate": "/{route}",
      "UpstreamPathTemplate": "/identity/{route}",
      "UpstreamHttpMethod": [ "Get", "Options", "Post" ],
      "DownstreamScheme": "http",
      "ServiceName": "identity"
    }
  ],
  "GlobalConfiguration": {
    "RequestIdKey": "OcRequestId",
    "AdministrationPath": "/administration"
  }
}

Поэтому я ожидаю увидеть страницу быстрого запуска IdentityServer по адресу localhost:7060/identity, но вместо этого я получу 404. Эта страница работает нормально, когда я достигаю ее непосредственно по URL-адресу сервера идентификации (localhost:7050).

0 ответов

Вы, наверное, уже догадались, но только для будущих поколений; Я полагаю, проблема в том, что вы все, что-то вроде/identity/something быть переданным /something.

Чтобы отобразить страницу быстрого старта, вы должны определить другой перетрасс, который только улавливает /identity и вперед /. Тогда нетsomething требуется, и изменение маршрута должно работать нормально.

Также схема должна быть лучше https.

Другие вопросы по тегам