Определите разные области и роли для разных ресурсов в безопасности 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')")
Другие вопросы по тегам