Проблема:
У меня есть сфера Keycloak со смешанной базой пользователей. Некоторые пользователи являются нативными (нативными), некоторые предоставляются через пользовательскую реализацию SPI пользовательского хранилища (федеративные пользователи).
Когда я выполняю вход с OID C, Keycloak просит утвердить 4 области (test-client) , профиль, электронная почта, роли). Запрос выполняется с областью действия openid . Keycloak превращает его в эти четыре области. test-client - это имя клиента. Нет реальной клиентской области с таким именем, отображаемой в пользовательском интерфейсе администратора.
При использовании собственного пользователя все работает нормально. Я одобряю, и вход в систему завершается успешно.
Просмотр согласия пользователя подтверждает, что все в порядке.
Использование федеративного пользователя при входе в систему происходит сбой со следующим сообщением.
[invalid_scope] Client no longer has requested consent from user
Просмотр согласия пользователей мы видим, что область действия test-client не добавляется.
Попытка обменять код на токен выдает ошибку подбора в журнале Keycloak
11:06:31,964 WARN [org.keycloak.events] (default task-10) type=CODE_TO_TOKEN_ERROR, realmId=torment, clientId=test-client, userId=f:ff4c66e5-2a6f-465c-8418-200648a49973:dfb_user, ipAddress=127.0.0.1, error=not_allowed, grant_type=authorization_code, code_id=418dfa66-b4c8-4481-b46d-ceac97e65b39, client_auth_method=client-secret
При всех последующих попытках входа в систему будет запрашиваться только подтверждение отсутствует test-client область действия, но она никогда не будет добавлена к согласию.
Вопрос:
- Почему это происходит?
- Как мне заставить это работать?