Конечная точка HTTP Keycloak для авторизации запросов на основе разрешений и областей - PullRequest
0 голосов
/ 21 апреля 2020

Для имитации потока авторизации я создал следующее:

Клиент: управление курсом

Пользователи: - teacher@gmail.com - student@gmail.com

Роли: - Учитель - Ученик

Ресурс: - Курс

Учитель имеет право просматривать и удалять доступ к курсу, а ученик имеет доступ только для чтения. Это делается путем создания просмотра и удаления областей в клиенте управления курсом. Затем я создал разрешение для просмотра и удаления на основе области действия.

Когда я go перехожу на вкладку оценки в авторизации и устанавливаю роль для студента, а ресурс для управления курсом, это показывает, что чтение разрешено, а удаление запрещено.

Как я могу получить поддержку принятия этого решения через конечные точки HTTP. Например, если я получаю GET-вызов для http://localhost/course/1 с токеном JWT, как я могу перенаправить его в keycloak для авторизации?

Следующая страница оценки: enter image description here

Ниже приведены результаты оценки: enter image description here

Ниже приведен сетевой вызов для оценки:

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
}
...