Keycloak - 500 Internal Server Error- при проверке токена, созданного конфиденциальным клиентом

На сервере Keycloak мы создали клиента, у которого есть Access Type из confidential. Позвонив /protocol/openid-connect/token конечная точка с client_id и client_secret, мы получили объект, который должен был аутентифицировать рассматриваемое приложение (клиента) в последующих запросах.

Несмотря на то, что токен действителен (что я дважды проверил, вызвав introspect конечная точка), я получаю ошибку 500 от сервера для любого запроса, который имеет это access_token

Вкратце:

  • Вызов этой конечной точки <base_url>/auth/realms/<realm>/protocol/openid-connect/token дает access_token
    • Предоставленные данные: client_id, client_secret, grant_type: "client_credentials"
  • Звонок <base_url>/auth/realms/<realm>/protocol/openid-connect/userinfo дает 500Internal Server Error
      {
    "error": "unknown_error"
}

Есть какие-нибудь идеи о том, в чем может быть проблема?

2 ответа

Это должно быть исправлено в Keycloak 13.0.0. См. Этот коммит: https://github.com/keycloak/keycloak/commit/056b52fbbe5af06aab957d37405215f1f4ed6ecd

Из вопроса не совсем понятно, как вы отправляете токен в конечную точку userInfo. При условии, что полученный вами токен доступа действителен, убедитесь, что вы отправляете токен в заголовке запроса. Попробуйте следующую команду curl:-

      curl 
     -X GET 
     -H "Authorization: Bearer <Access Token>" 
     -H "Content-type: application/json" 
     http://{hostname}/auth/realms/{realm_name}/protocol/openid-connect/userinfo
Другие вопросы по тегам