Как «помирить» Keycloak, запущенный в контейнере, с webapi и frontend-react-app?
Добрый день!
У меня есть три сервиса: Keycloak (для авторизации, размещен в docker-контейнере), WebApi (C#, размещен в docker-контейнере) и Frontend приложение.
Суть проблемы в том, что keycloak и webapi находятся в одной внутренней сети docker и видят друг друга по internal IP, а frontend общается с keycloak по external/public IP.
Из-за этого не проходит валидация токенов со стороны webapi, т.к. в свойстве "frontend url" в keycloak указан публичный адрес и, соответственно, возникает ошибка "invalid issuer" при проверке токена на webapi.
Возможно ли сделать так, чтобы приложения докер-контейнеры видели друг друга по публичным IP?
Valentin Barbolin, спасибо, попробую.
Но насколько я понял app-network - это внутренняя докеровская сеть и домен будет доступен только внутри нее. Как-то этот домен на windows можно привязать к контейнеру? В hosts вроде docker работает через единый gateway...
Valentin Barbolin, не совсем понятно выразился.
Как мне получить доступ к опубликованному в докер контейнере приложению через http-запрос по dns-имени, например, через браузер?
Для этого мне надо закрепить за выбранными именем IP в hosts (если мы говорим про Windows). Без dns-имени он доступен по http://localhost:port, где port - это публичный порт, пробрасываемый при docker run -p port: internalport.
Вопрос где и как этот public IP у контейнера взять. Его надо как-то в домашней сети ПК зарегистрировать через команды docker?