Keycloak - отсутствуют данные в ответе пользователя - PullRequest
0 голосов
/ 28 октября 2019

Когда я нажимаю /auth/realms/{realm}/protocol/openid-connect/userinfo, я получаю очень мало информации о пользователе.

{
    "sub": "ed291f7a-a799-4d8b-a776-e634d727668c",
    "email_verified": true,
    "preferred_username": "admin"
}

Дополнительная информация (например, списки ролей) находится внутри токена доступа, который я на самом деле отправляю на эту конечную точку. Я мог бы просто декодировать токен доступа вместо того, чтобы поразить эту конечную точку, это ожидаемое / нормальное поведение или я делаю что-то не так?

1 Ответ

0 голосов
/ 30 октября 2019

Поля, присутствующие в ответе, ограничены утверждениями, присутствующими в маркере доступа.

Keycloak совместим с OpenID.

Спецификация OpenID определяет :

Конечная точка UserInfo является защищенным ресурсом OAuth 2.0, который возвращает утверждения о прошедшем проверку подлинности конечного пользователя. Чтобы получить запрошенные утверждения о конечном пользователе, клиент отправляет запрос конечной точке UserInfo, используя токен доступа, полученный посредством аутентификации OpenID Connect. Эти утверждения обычно представлены объектом JSON, который содержит коллекцию пар имя и значение для утверждений.

Могут быть возвращены утверждения, определенные в Раздел 5.1 , а также дополнительные утверждения, не указанныетам.

...