identityserver4 за nginx с https & letsencrypt в AKS (лазурный kubernetes), по какой-то причине не позволяющий mvcclient установить-cookie - PullRequest
0 голосов
/ 12 октября 2018

Моя неделя до сих пор : В последние пару дней я работал над развертыванием нашего основного приложения identityserver4 .net в кластере Azure Kubernetes (AKS).После нескольких проблем все, казалось, работало нормально.Мы не используем встроенные функции http-маршрутизации, потому что не хотим маршрутизировать с использованием поддоменов и по какой-то причине;мы не можем заставить letsencrypt работать, когда включена http-маршрутизация.Мы используем https: // для доступа к службам, размещенным в AKS, используя nginx.

в любом случае. Проблемы возникли, когда я развернул одно из наших клиентских приложений mvc в AKS.Домашняя страница клиента работает как положено.Когда клиент перенаправляет меня на страницу входа в нашу службу idsrv4, и я вхожу в систему, используя свои учетные данные: включается цикл перенаправления. Я знаю, что это означает, что authcookies установлены неправильно.

Проблема Я обнаружил, что двусторонняя аутентификация работает в Google Chrome и Firefox, в этих браузерах нет циклов перенаправления.Edge, IE и Safari не работают и вызывают перенаправление-петли при перенаправлении в signin-oidc.

Пока обнаружены:

  1. Я протестировал приложение mvcclient, используя мой локальный докер для установки Windows.При использовании HTTP-соединения - не https - двусторонняя передача работает во всех браузерах
  2. Когда я использую Fiddler с расшифровкой HTTPS для диагностики двусторонней передачи с использованием служб, размещенных на удаленных AKS: двусторонняя передача работает во всех браузерах
  3. Когда я отключаю Fiddler и тестирую сервисы, размещенные на удаленных AKS, двусторонняя передача не работает в Edge, IE и Safari.

Кто-нибудь знает, как я могу настроить Nginx для поддержки всех браузеров для настройкикуки и пересылать правильные заголовки?Каковы требования для identityserver4 в этой ситуации?Требуется ли дополнительная конфигурация rin nginx или cookie для проверки подлинности в моем клиентском приложении или identityserver4 (кроме установки publicorigin в identityserveroptions в startup.cs)?

1 Ответ

0 голосов
/ 14 октября 2018

После того, как я сделал новую установку нового кластера AKS и попробовал еще раз, чтобы заставить Let's Encrypt работать, используя стандартную addon-http-routing, с которой я работал, я попробовал и попробовал и наконец подумал: почему мой редирект на/ signin-oidc, регистрирующийся как HTTP / 2 в Edge и IE.Это оказалось основной частью сочетания проблем, с которыми я столкнулся на прошлой неделе ... в любом случае: я провел небольшое исследование и выяснил, как обновить некоторые части конфигурации до встроенного входного контроллера (addon-httpпрокладка маршрута).для всех, кто испытывает цикл входа в систему при использовании AKS (Azure Kubernetes Service).Вы можете перезаписать конфигурацию стандартного аддона маршрутизации http, предоставляемого в AKS, и отключить http / 2 вручную (по умолчанию включено!).

Поскольку я немного расстроился из-за того, что в Интернете было мало информациидля настройки кластера AKS в Azure в сочетании с Let's Encrypt и addon-http-routing, а также потому, что я не смог найти никакой информации о развертывании IdentityServer4 в кластере AKS в Azure.Я подготовил несколько файлов .yaml (все файлы, которые я использовал для запуска и запуска), расширил их комментариями и опубликовал их для всех, кто хочет безопасно разместить IdentityServer4 в службе Azure Kubernetes.Это мой первый, хотя и небольшой, публичный вклад.Если у кого-то возникнут проблемы с реализацией моих файлов .yaml с использованием моего рудиментального файла Readme.txt: пожалуйста, дайте мне знать, и я посмотрю, что я могу сделать.

https://github.com/leonvandebroek/Identityserver4-deployments/tree/master/Azure%20Kubernetes%20Service

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