Я настроил Keycloak в качестве брокера идентификации, подключившись к созданному мной настраиваемому провайдеру OIDC. Во время потока authorization_code Keycloak вызывает конечную точку авторизации, чтобы получить код. Затем он вызывает конечную точку токена моего настраиваемого поставщика OIDC, чтобы обменять код на токен аутентификации.
Я заметил, что Keycloak передает client_id и client_secret как параметры в теле запроса, а не как заголовок базовой авторизации. Я не хочу изменять конфигурацию безопасности на моей конечной точке токена. Есть ли способ заставить Keycloak отправлять запросы токенов IdP с помощью заголовка Auth?
Соответствующий код Keycloak находится в методе AbstractOAuth2IdentityProvider
generateTokenRequest
. Это жестко кодирует идентификатор клиента и секрет клиента, которые будут передаваться в качестве параметров в теле запроса.
Согласно спецификации OIDC, по умолчанию используется client_secret_basic
. Я был бы удивлен, если это не поддерживается Keycloak; Я просто не могу понять, как это настроить.