У меня есть клиент в Keycloak (7.0.0) с заданной конфигурацией - выделенная опция «включает поддержку« Client Credentials Grant »»:
Когда я получаютокен для этого клиента (POST / auth / realms / {my-realm} / protocol / openid-connect / token), я получаю следующий ответ json:
{
"access_token": "xxx",
"expires_in": 600,
"refresh_expires_in": 1800,
"refresh_token": "xxx",
"token_type": "bearer",
"not-before-policy": 1572415518,
"session_state": "xxx",
"scope": "xxx xxx"
}
Я хочу интегрировать его с OAuth2FeignRequestInterceptor , который по умолчанию игнорирует токен обновления, а создает новый сеанс каждые access_token
* expires_in
секунд:
if (accessToken == null || accessToken.isExpired()) {
try {
// no refresh token usage here
accessToken = acquireAccessToken();
}
...
}
Мои вопросы:
- Почему я вообще получаю токен обновления для
client_credentials
, который является типом предоставления для взаимодействия с бэкэндом -> бэкэндом? Документация OAuth2 ссылка прямо говорит, что «токен обновления НЕ ДОЛЖЕН включаться» для client_credentials
типа предоставления. - Возможно ли настроить keycloak, чтобы он не отправлял токены обновления дляклиенты с
client_credentials
типом предоставления? - Если ответ на вопрос 2. означает «НЕТ» - нужно ли мне внедрять свой собственный перехватчик симметричных запросов с поддержкой маркеров обновления?
- Если область действия клиента включает
offline_access
- refresh_expires_in
- это 0
, и, как я понял, токен обновления является автономным токеном. Вот ссылка на список рассылки keycloak, где кто-то из команды keycloak рекомендует использовать автономный токен - не противоречит ли это спецификации OIDC для client_credentials
типа предоставления?
`