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