#docker #security #localhost #keycloak #cross-origin-resource-policy
Вопрос:
У меня есть следующая настройка:
https://localhost:1234 -> Приложение React с использованием keycloak-js и @react-keycloak/web http://localhost:8080 ->> Блокировка ключа (докер)
Приложение React настроено для использования экземпляра keycloak.
Если я пытаюсь получить доступ к своему веб-приложению, я получаю следующую сетевую ошибку:
GET http://localhost:8080/auth/realms/REALMNAME/protocol/openid-connect/3p-cookies/step1.html
not-set cross-origin-resource-policy
Мой браузер блокирует запрос, потому cross-origin-resource-policy
что заголовок отсутствует.
Та же ошибка, если я размещаю свое приложение react на https://localhost:1234 и используйте продуктивную клавиатуру на https://id.domain.de, так что, похоже, с ssl проблем нет.
Это работает, если я использую свой продуктивный ключ и продуктивное приложение react на сервере с разными поддоменами. (https://id.domain.de и https://ui.domain.de).
Есть идеи, как это исправить? 🙂
Ответ №1:
Вы должны включить веб-источники для URL-адреса вашего приложения react. Я считаю, что веб-источник вашего клиента включен для того, который работает на вас. Вы можете включить веб-источник для части из Realms -> Client -> Select Client-> Web Origins
Веб-источники
Этот параметр сосредоточен вокруг CORS, который означает совместное использование ресурсов из разных источников. Если браузер JavaScript пытается сделать HTTP-запрос AJAX на сервер, домен которого отличается от домена, с которого был получен код JavaScript, то запрос должен использовать CORS. Сервер должен обрабатывать запросы CORS особым образом, в противном случае браузер не будет отображать или разрешать обработку запроса. Этот протокол существует для защиты от XSS, CSRF и других атак на основе JavaScript.