Я пытаюсь настроить среду тестирования интеграции для одного из наших проектов веб-API, защищенного с помощью KeyCloak. Моя идея состоит в том, чтобы создать файл компоновки Docker, в котором соединяются все необходимые компоненты, а затем попытаться вызвать веб-API, размещенный в папке, и проверить ответ.
Вот пример файла создания Docker, который соединяет KeyCloak и Web API вместе
keycloak:
image: jboss/keycloak:3.4.3.Final
environment:
DB_VENDOR: POSTGRES
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: keycloak
POSTGRES_PORT_5432_TCP_ADDR: postgres
POSTGRES_DATABASE: keycloak
JDBC_PARAMS: 'connectTimeout=30'
ports:
- '18080:8080'
- '18443:8443'
networks:
- integration-test
depends_on:
- postgres
test-web-api:
image: test-web-api
environment:
- IDENTITY_SERVER_URL=https://keycloak:18443/auth/realms/myrealm
networks:
- integration-test
ports:
- "28080:8080"
Теперь, когда я размещаю KeyCloak и Web API в разных контейнерах, я не могу получить доступ из контейнера Web API к KeyCloak с помощью localhost, поэтому мне нужно использовать https://keycloak:18443/, но когда я пробую его и получаю для пример .well-known / openid-configuration от KeyCloak Я получаю сообщение об отказе в соединении:
root @ 0e77e9623717: / app # curl https://keycloak:18443/auth/realms/myrealm/.well-known/openid-configuration
curl: (7) Не удалось подключиться к порту keycloak 18443: соединение отклонено
Из документации я понял, что мне нужно включить SSL на KeyCloak, но весь процесс немного запутан, и не очень понятно, какой домен использовать для сертификата ...
Если бы кто-то имел опыт с ситуацией, подобной моей, и мог бы поделиться ею, это было бы здорово!