Конечная точка HTTP Keycloak для авторизации запросов на основе разрешений и областей
Чтобы смоделировать поток authz, я создал следующее:
Клиент: управление курсом
Пользователи: - teacher@gmail.com - student@gmail.com
Роли: - Учитель - Ученик
Ресурс: - Курс
Преподаватель имеет доступ на просмотр и удаление курса, а студент - только на чтение. Это делается путем создания просмотра и удаления областей в клиенте управления курсом. Затем я создал разрешение на просмотр и удаление на основе области.
Когда я перехожу на вкладку оценки в авторизации и устанавливаю роль студента и ресурса для управления курсом, он показывает, что чтение разрешено, а удаление запрещено.
Как я могу получить поддержку этого решения через конечные точки HTTP. Например, если я получаю вызов GET дляhttp://localhost/course/1
с токеном JWT, как я могу перенаправить его в keycloak для авторизации?
Ниже приводится страница оценки:
Ниже приведены результаты оценки:
Ниже приводится сетевой вызов для оценки:
URL: https://keycloak.com/auth/admin/realms/test/clients/ea64b9d5-e924-4cbd-bd0a-31b34a908d8a/authz/resource-server/policy/evaluate
POST data = {
"resources": [
{
"name": "Course Resource",
"owner": {
"id": "ea64b9d5-e924-4cbd-bd0a-31b34a908d8a",
"name": "Course-management"
},
"ownerManagedAccess": false,
"displayName": "course",
"_id": "59a4e1ab-dd61-4ecb-823b-74f0930e83c5",
"uris": [
"/courses/*"
],
"scopes": [
"view",
"delete"
]
}
],
"context": {
"attributes": {}
},
"roleIds": [
"teacher"
],
"userId": "27fc3b7f-3c4e-4ad4-9008-979730255129",
"entitlements": false
}