Keycloak: Как включить `scope` в тип предоставления учетных данных клиента? - PullRequest
0 голосов
/ 03 марта 2020

При использовании типа предоставления учетных данных клиента поле scope всегда пусто. Когда я использую тип предоставления пароля, области хорошо включены в токен. Это нормально или у меня есть другие настройки?

Спасибо

РЕДАКТИРОВАТЬ

Пример токена:

{
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJXRU5HN1FJc0JiaXpQY1EyY2xqd0tCeXctRGtDdmZFMWdFck4wNWRBc2JBIn0.eyJqdGkiOiIyMDE1NjQxNS03ZDEzLTQwYmYtYTZkZS0xM2E1MjdjOGQzN2IiLCJleH-AQ9euycL3VHQDuesKib9DiShXXm_bVH7WHnWw1URtY1hrBOLQ2hUnFu-C9i66v9QcbvCxcEXYE6drIyAlxk9CEvQN6nKY7rzhpVHa4Kgc_FQ1-0MKmZydZp6Iu1EKngzTq4PxCtza4Lo5nuw9MYd-Vu23fJBfd55M4a8NVl09_yuvYJ95YVEWhBdw1bhd",
    "expires_in": 3600,
    "refresh_expires_in": 1800,
    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI2OGUwNjRiNC0yOTA3LTRmYjYtYTA5MC1mOTM0CJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgxODAvYXV0aC9yZWFsbXMvY2hpY293YSIsImF1ZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODE4MC9hdXRoL3JlYWxtcy9jaGljb3dhIiwic3ViIjoiNWJlNWE4YjYtMzAzYi00ZWY4LTk5NzEtYjhmMjdjMjE0MDM3IiwidHlwIjoiUmVmcmVzaCIsImF6cCI6InVpc2VydmljZSIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6ImUzYj",
    "token_type": "bearer",
    "not-before-policy": 1582091643,
    "session_state": "e3b2d2d1-79b2-4e20-8f74-640ee778c1ec",
    "scope": ""
}

1 Ответ

0 голосов
/ 04 марта 2020

Я обнаружил, почему область не включена, но кажется странным, как Keycloak связывает Client Scopes с Roles.

Причина в том, что если мы затронули некоторые роли в связанной области (мы можем влияют на роли в области на вкладке Client Scopes > select our scope > Scope), и учетная запись службы нашего клиента не имеет ни одной из этих ролей, область не добавляется, когда мы запрашиваем токен с типом предоставления учетных данных клиента.

Я провел тест с типом предоставления пароля, и результат тот же, scope пуст, если у пользователя нет одной из ролей, затронутых областью действия.

I Я немного удивлен таким поведением, почему такая сильная связь между ролями и областями клиента? Я ожидал, что в любом случае всегда включаю клиентскую область, но не включаю роли пользователя / клиента, если они не затрагиваются областью.

...