Я пытаюсь настроить аутентификацию SAML на Apache Tomcat 9.0.24. Я использую плагин keycloak-saml-tomcat-adapter-dist-7.0.0, который должен аутентифицироваться на автономном сервере KeyCloak (v 7.0.0).
Я настроил обычные сопоставления ролей в web.xml, например:
<security-role>
<role-name>role0</role-name>
</security-role>
<security-constraint>
<display-name>Security constraint for the /ktc folder</display-name>
<web-resource-collection>
<web-resource-name>/ktc page</web-resource-name>
<url-pattern>/ktc</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>role0</role-name>
</auth-constraint>
</security-constraint>
Машины докеров находят друг друга, и когда я пытаюсь получить доступ к защищенному ресурсу /ktc, попытка перехватывается, и я перенаправляюсь на сервер keycloak для входа. Если я предоставлю неверные учетные данные, попытка входа будет корректно отклонена. Кроме того, если я предоставлю действительные учетные данные, меня перенаправят обратно на мой веб-сайт Tomcat.
Вот, к сожалению, Tomcat не пропускает меня на защищенный ресурс. Если я попытаюсь получить к нему доступ снова, во второй раз меня перенаправят обратно после того, как что-то быстро вспыхнет на экране, не представив мне форму входа. Из этого я подозреваю, что я действительно аутентифицирован, но не получаю ожидаемую роль. Журналы событий сервера keycloak также показывают, что я вошел в систему, но не сообщают, насколько успешно и какие роли были назначены.
Что я делаю неправильно?