Сервер идентификации 4 в Docker с использованием OIDC и тестирования Selenium

#docker #security #selenium-chromedriver #identityserver4

#docker #Безопасность #selenium-chromedriver #identityserver4

Вопрос:

В настоящее время я пытаюсь запустить интеграционный тест с Selenium при следующей настройке:

  • IdentityServer4, размещенный в службе REST net core 3.1 — работает в собственном контейнере docker (securityservice)
  • Тестовый веб-пользовательский интерфейс MVC, работающий под управлением net core 3.1 — работает в собственном контейнере docker (testuserinterface)
  • Тест selenium выполняется на моем локальном компьютере в рамках тестового проекта net Core 3.1

Проблема возникает, когда я пытаюсь получить доступ к защищенной странице в веб-приложении, перенаправление выполняется на сервер идентификации, чтобы отобразить страницу входа пользователя, однако URL-адрес, на который перенаправляется, настроен с идентификатором контейнера docker (например http://securityservice/accouunt/login ). Этот URL-адрес недоступен из моего локального браузера, поэтому мой тест не выполняется локально.

Есть ли способ настроить URL-адрес входа (только для целей тестирования) так, чтобы он соответствовал локальной машине и локально предоставляемому порту docker (напримерhttp://127.0.0.1:dockerport/account/login).

Я пробовал много разных примеров и комбинаций, но в настоящее время безуспешно.

Любая помощь в этой области была бы весьма признательна.

Заранее спасибо,

Стюарт

Ответ №1:

Что я сделал для локальной разработки и тестирования в некоторых случаях, так это создать локальный сертификат HTTPS с помощью mkcert, а затем в моем локальном файле хоста добавить запись для сопоставления домена сертификата с 127.0.0.1

Поэтому я могу использовать URL-адреса, такие как https://identityservice:6001 чтобы указать на мой IdentityServer.