Вход в систему WSO2 Identity Server возвращает 403 - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь войти в консоль управления WSO2.Он упакован и размещен в экземпляре AWS EC2.Я могу перейти на страницу входа в консоль, но когда я пытаюсь войти, я получаю сообщение 403 Запрещено.

Навигация на страницу входа в порядке

enter image description here

Запрещенная ошибка

enter image description here

Я знаю, что причина этогопроблема в том, что моя страница входа не публикует X-CSRF-Token.

Пример данных формы, опубликованных в моем "плохом" запросе:

enter image description here

Консоль моего экземпляра WSO2 печатает ошибку, подобную этой:

WARN {org.owasp.csrfguard.log.JavaLogger} - potential cross-site request forgery (CSRF) attack thwarted (user:<anonymous>, ip:IP_ADDRESS, method:POST, uri:/carbon/admin/login_action.jsp, error:required token is missing from the request)

Пример данных формы, отправленных в «хорошем» запросе в локальном экземпляре WSO2:

enter image description here

То, что я пробовал:

Я попытался отключить сжатие, как предложено в этом посте: wso2 api manger carbon page дает 403 Запрещено

Я не использую JDK 1.8.0_151, который помечен как версия с ошибкой.

Я могу обойти проблему, еслиЯ отключаю csrfguard в Owasp.CsrfGuard.Carbon.properties но это угроза безопасности.

У меня включены липкие сеансы

Есть идеи, почему публикация на страницу login_action.jsp вернет 403?

EDIT

Я не упомянул в посте, что использую завершение TLS с балансировщиком нагрузки AWS.Я почти уверен, что моя проблема как-то связана с этим.Эта строка из моей консоли выводит подробности моей ошибки:

Referer domain https:LOAD_BALANCER_URL/carbon/admin/login.jsp does not match request domain: http://LOAD_BALANCER_URL/carbon/admin/js/csrfPrevention.js

Вы можете видеть, что реферер использует https, но запрос использует http.Я считаю, что хочу, чтобы домен запроса был https, но я не уверен, как это сделать.Я думаю, что первая страница звонит на login.jsp с https, а страница login.jsp звонит на csrfPrevention.js страницу, но меняет протокол на http.

Ответы [ 3 ]

0 голосов
/ 02 января 2019

Есть ли у вас балансировщик нагрузки на вашем Identity Server?Если это так, пожалуйста, убедитесь, что вы включили липкие сессии в вашем LB.Вы можете найти пример конфигурации NGINX в руководстве - docs.wso2.com / display / CLUSTER44x / Настройка + NGINX

0 голосов
/ 11 июня 2019

Понизьте версию java JDK до 1.8.0_144.Если это не сработало, перейдите в этот каталог wso2Servers / wso2is-5.5.0 / repository / conf / security.Существует имя файла Owasp.CsrfGuard.Carbon.properties.

В этом файле есть строка org.owasp.csrfguard.JavascriptServlet.refererMatchDomain = true

, для которого установлено значение org.owasp.csrfguard.JavascriptServlet.refererMatchDomain = false

Это сработало для меня.

0 голосов
/ 26 декабря 2018

Пожалуйста, обратитесь к матрице несовместимости ОС и JDK и убедитесь, что вы не используете одну из этих пар OS JDK.

...