Аутентификация приложений Wildfly 11 Elytron + KeyCloak 3.4.3

Я испытываю странное поведение перенаправления при попытке войти в приложение на wildfly 11 (elytron включен), защищенный через KeyCloak 3.4.3 на отдельном компьютере (установка vanilla)

Настройка: сервер keycloak является ванильной установкой, одна область поверх главной (пользователи Wildfly Mini Apps) взяты из OpenLdap (популяция пользователей работает правильно)

сервер приложений - wildfly 11 с включенным elytron и установленным keycloak-wildfly-адаптером

приложение защищено в web.xml

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<login-config>
    <auth-method>KEYCLOAK</auth-method>
    <realm-name>KeycloakOIDCRealm</realm-name>
</login-config>

<security-constraint>
    <web-resource-collection>
        <web-resource-name>login</web-resource-name>
        <url-pattern>/login</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<security-role>
    <role-name>*</role-name>
</security-role>

keycloak.json:

{
  "realm": "Wildfly Mini Apps",
  "auth-server-url": "https://keycloak-server/auth",
  "ssl-required": "external",
  "resource": "wildfly-server",
  "credentials": {
     "secret": "client-secret"
  },
 "confidential-port": 0,
 "disable-trust-manager": true
}

Страница входа записывает текст предупреждения в консоль, чтобы я знал, что он работает, и перенаправляет на index.xhtml

Проблема: при доступе к приложению / входу в систему, я успешно перенаправлен на страницу входа в систему keycloak, и после ввода учетных данных страница входа в систему просто продолжает перенаправлять на себя, а не на index.xhtml, как предполагалось

скриншот firebug

Вывод консоли Wildfly:

Проблемная часть, кажется, это:

2018-03-06 13: 13: 59,214 TRACE [org.wildfly.security] (задание по умолчанию-50) Сопоставление разрешений: удостоверение [ 75e82805-b2ec-4e75-a8d3-fae051845f04 ] с ролями [аутентифицирован, подразумевает uma_authorization] ("org.wildfly.security.auth.permission.LoginPermission" "") = true 2018-03-06 13:13:59,222 TRACE [org.wildfly.security] (задание по умолчанию-50) Авторизация прошла успешно 2018-03-06 13:13: 59,222 TRACE [org.wildfly.security] (задание по умолчанию-50) Обработка AuthorizeCallback: authenticationID = пустой ID авторизации = пустой авторизованный = true

Подсвеченный идентификатор указывает на правильного пользователя в keycloak, сопоставление ролей в порядке, но я нигде не вижу имя пользователя этого пользователя.

Что мне не хватает в моей конфигурации, чтобы получить правильное имя пользователя? Почему authorizationID и authenticationID равны нулю, когда аутентифицированный правильно разрешен в true?

Спасибо

0 ответов

Другие вопросы по тегам