Как настроить CORP с помощью Keycloak?

#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.