Я использую Spring Boot 2 и Keycloak (keycloak-spring-boot-starter) для реализации REST API.Тем не менее, я просто не могу сделать это правильно.
Мои ресурсы API выглядят так:
POST / api / a для создания, если предоставлено: write
GET / api / a для чтения всех предоставленных с: read
GET / api / a / {name} для чтения одного a (если предоставляется с: read)
POST / api/ a / {name} / b для создания b под a, если предоставлено b: write и т. д. ...
Каждый ресурс API должен также получить ResourceRepresentation в Keycloak, поскольку требуется предоставить доступ для чтения.на основе ресурсов для пользователей.Я планирую использовать группы для этого и назначать пользователей в группы, которые соответствуют названию ресурса.(например, имя ресурса будет / a1 / b1, которое также будет группой, которой я назначаю пользователей с доступом для чтения)
Разрешения на запись будут предоставляться только администраторам, которые будут в группе, назначенной сроль соответственно.
Я пытался всю неделю, но безуспешно.И моя реализация API, и конфигурация Keycloak выглядят как поле битвы.Пример на github слишком упрощен, поскольку он не показывает вложенные ресурсы и корреляцию между методами и областями HTTP.
Как бы вы структурировали
- Ваш сервер Keycloak (т.е.клиентский конфиг: ресурсы (включая URI), области действия, политики, разрешения, а также: группы, роли)?
- Your Spring Boot 2 application.properties (для работы с Keycloak Authz)?
- Верно ли следующее утверждение: если я правильно настрою свой API (сопоставляя пути и методы с областями), я могу полностью контролировать доступ к своим ресурсам через пользователей, группы, роли, политики и разрешения Keycloak.