Согласно документации Keycloak на https://www.keycloak.org/docs/latest/server_admin/index.html#_service_accounts, клиент, использующий поток «Client Credentials Grant», должен быть настроен на сервере как «Тип доступа: конфиденциальный» и только с «Учетными записями служб». Включено: правда ". Это хорошо работает, и я могу выбрать JWT и использовать их с «Authentication Bearer» в HTTP-запросах между внутренними службами.
В администраторе Keycloak GUI я могу выбрать "Тип доступа: только для канала-носителя " также, хотя это описано как" веб-сервисы, которые никогда не требуют входа в браузер ". Звучит идеально для потока «Client Credentials Grant». Не работает, хотя При попытке получить JWT с http --auth $clientId:$clientSecret --form POST https://keycloak/auth/realms/testrealm/protocol/openid-connect/token grant_type=client_credentials
он всегда возвращается с ошибочным запросом:
{
"error": "invalid_client",
"error_description": "Bearer-only not allowed"
}
Так что же хорошо для настройки Keycloak Admin GUI "Access-Type: bearer-only" для?
PS: сбивает с толку существует настройка клиентского адаптера Java с тем же именем, описанным в https://www.keycloak.org/docs/latest/securing_apps/#_java_adapter_config - я не говорю об этом.