Определите разные области и роли для разных ресурсов в безопасности Oauth Spring
Как определить разные политики безопасности в Spring Oauth(разные области действия для разных ресурсов клиента)
Я посмотрел в схеме таблицы OAUTH_CLIENT_DETAILS.
Мы можем определить список RESOURCE_IDS и список областей и ролей. Но мне нужно более детальный контроль доступа для каждого ресурса.
Например, 1. client1 имеет область [ user] на [resource1], но в то же время client1 имеет область [admin, user] на [resource2]. та же идея в IAM AWS.
Любой совет, как мы можем настроить или реализовать это в весенней безопасности?
1 ответ
Как насчет объединения идентификатора ресурса в имя области. Тогда области видимости похожи на RESOURCE1.user, RESOURCE2.admin,RESOURCE2.user,RESOURCE2.admin. Например, если ваши ресурсы - это, например, учетные записи api и loan api, области действия будут выглядеть как user-api.user, user-api.admin, loan-api.user, loan-api.admin и т. Д.
Затем со стороны контроллера сервера ресурсов вы можете использовать
@PreAuthorize("#oauth2.hasScope('user-api.user')")