Невозможно проверить токен из Keycloak - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь проверить токен, полученный от брелка. Я создал TestClient в качестве клиента, TestRealm в качестве области и «пользователь» в качестве пользователя. При проверке полученного токена я нажимаю эту конечную точку - http://localhost: 8080 / auth / realms / TestRealm / протокол / openid-connect / userinfo .

В ответе вместо получения фактические данные пользователя, я получаю этот ответ каждый раз:

{
    "sub": "xxxx-xxxx-xxxx-xxxx-xxxxxx",
    "email_verified": false,
    "preferred_username": "service-account-testclient"
}

Может кто-нибудь объяснить?

Ответы [ 3 ]

1 голос
/ 12 февраля 2020

Для проверки токена получите ключ publi c из конечной точки jwks_uri (JSON Web Keys) стандартного набора конечных точек OpenID Connect. Затем выполните проверку подписи.

См. эту статью для получения дополнительной информации о проверке токена.

1 голос
/ 20 января 2020

Я бы не сказал, что вы делаете проверку токена. Проверка токена требует проверки подписи токена (обычно используется ключ realm publi c).

Вы просто вызываете стандартную конечную точку OID C userinfo с токеном в заголовке auth, и Keycloak должен выполнить проверку токена как часть обработки запросов. Ответ Userinfo зависит от конфигурации вашего клиента Keycloak (мапперы, области, ...).

Таким образом, когда вы получаете пользовательский ответ с http-кодом 200, токен должен быть действительным. Но не используйте userinfo для «проверки токена» - это увеличит ненужную загрузку Keycloak, это медленный подход, конечная точка userinfo не предназначена для этого .... Выполните автономную, быструю проверку состояния подписи токена без сохранения состояния. Это должна быть стандартная функция всех библиотек OID C.

0 голосов
/ 12 февраля 2020

Как уже заметил @JanGaraj, получив правильный ответ от конечной точки userinfo, Keycloak уже проверил токен. Однако основной смысл проверки JWT c состоит в том, чтобы ваше приложение могло делать это независимо от какой-либо другой службы.

Глава 2.6.2 документации по Keycloak также довольно хорошо объясняет это и дает вам возможность, если вам действительно нужно вручную проверить токены с помощью Keycloak.

...