Определите разные области и роли для разных ресурсов в безопасности Oauth Spring - PullRequest
0 голосов
/ 09 мая 2018

Как определить разные политики безопасности в Spring Oauth (разные области действия для разных ресурсов клиента)

enter image description here

Я смотрел в схеме таблицы OAUTH_CLIENT_DETAILS .

Мы можем определить список RESOURCE_IDS и список областей и ролей. Но мне нужно более детальный контроль доступа для каждого ресурса.

Например 1. client1 имеет область [user] на [resource1], но в то же время client1 имеет область [admin, user] на [resource2]. та же идея в IAM AWS.

Какой-нибудь совет, как мы можем настроить или реализовать это в весенней безопасности?

1 Ответ

0 голосов
/ 28 мая 2018

Как насчет объединения идентификатора ресурса в имя области. Тогда области видимости похожи на 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')")
...