У меня проблема при вызове оконечной точки выхода Keycloak из (мобильного) приложения.
Этот сценарий поддерживается, как указано в его документации:
/realms/{realm-name}/protocol/openid-connect/logout
Конечная точка выхода из системы выходит из системы прошедшего проверку пользователя.
Пользовательский агент может быть перенаправлен на конечную точку, и в этом случае активный сеанс пользователя выходит из системы. После этого пользовательский агент перенаправляется обратно в приложение.
Конечная точка также может быть вызвана непосредственно приложением. Чтобы вызвать эту конечную точку напрямую, необходимо включить токен обновления, а также учетные данные, необходимые для аутентификации клиента.
Мой запрос имеет следующий формат:
POST http://localhost:8080/auth/realms/<my_realm>/protocol/openid-connect/logout
Authorization: Bearer <access_token>
Content-Type: application/x-www-form-urlencoded
refresh_token=<refresh_token>
но эта ошибка всегда возникает:
HTTP/1.1 400 Bad Request
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/10
Content-Type: application/json
Content-Length: 123
Date: Wed, 11 Oct 2017 12:47:08 GMT
{
"error": "unauthorized_client",
"error_description": "UNKNOWN_CLIENT: Client was not identified by any client authenticator"
}
Кажется, что Keycloak не может обнаружить текущее событие идентификации клиента, если я предоставил access_token. Я использовал тот же access_token для доступа к другим API Keycloak без каких-либо проблем, например userinfo (/Авт/царств//Протокол /OpenID-соединения /UserInfo).
Мой запрос был основан на этой проблеме с клавиатурой. Автор проблемы получил это сработало, но это не мое дело.
Я использую Keycloak 3.2.1.Final.
У вас есть та же проблема? У вас есть идеи, как это решить?