В настоящее время я настраиваю бесплатный экземпляр sh KeyCloak и пытаюсь добиться следующего: пользователи будут помещены в - группы - эти группы получат указанные клиентом c роли
например У меня есть роль "Издатели" и несколько групп издателей: Publisher1, Publisher2, ...
Итак, когда пользователь входит в систему, я могу определить, является ли он издателем или нет, и затем дать ему доступ к определенный c набор функций на сайте. Затем группы должны сузить все сведения, которые он получит.
Точно так же, как роль предоставит ему доступ к REST API, и группа отфильтрует результаты, которые он получит.
В SQL: SELECT * FROM xyz where publisher_id = ?
В токене я хочу увидеть эту информацию. При использовании функции оценки в настоящее время я получаю следующее:
{
"jti": "3e96fc9d-b1dc-428a-8f8e-0661f9cf265b",
"exp": 1578303161,
"nbf": 0,
"iat": 1578302861,
"iss": "https://prodo-sso-ti.ariva-services.de/auth/realms/PRODO",
"aud": "account",
"sub": "55bed571-dd3b-4282-8688-5da543517a49",
"typ": "Bearer",
"azp": "dashboard",
"auth_time": 0,
"session_state": "12ab2b8c-dc9a-42ca-b106-1a213dd38fc0",
"acr": "1",
"allowed-origins": [
"https://secretlink"
],
"realm_access": {
"roles": [
"offline_access",
"uma_authorization"
]
},
"resource_access": {
"account": {
"roles": [
"manage-account",
"manage-account-links",
"view-profile"
]
},
"dashboard": {
"roles": [
"Publisher"
]
}
},
"scope": "openid profile email",
"group_membership": [
"/Publisher1"
],
"email_verified": true,
"name": "My Name",
"preferred_username": "mb",
"locale": "de",
"given_name": "My",
"family_name": "Name",
"email": "my@name.de"
}
Я активировал Картограф членства в группе, чтобы получить группы, в которые входит пользователь. Проблема в том, что я получаю только название группы, пока мне нужно что-то более полезное, например, удостоверение личности. Поэтому я попытался добавить в группу «publisher_id» атрибут с цифрой c значение «1».
Как можно также получить этот publisher_id в информации о членстве в группе или где-то еще. Или, может быть, я нахожусь на неправильном пути, и это может быть достигнуто как-то иначе?
Я ценю любые намеки:)