Spring ABA c с централизованной базой данных - PullRequest
0 голосов
/ 22 марта 2020

Мне нужно иметь ABA C для моей большой базы пользователей, я хочу сохранить детали ABA C в базе данных, например, mongodb.

Я прошел через эти 1 2 подробности, но в этих ссылках рассказывается о том, как создать правила в файле свойств и проверить с помощью Spring pre authorize.

Можно ли хранить подобные правила AB C в базе данных и использовать их на централизованном сервере авторизации перед вызовом микросервиса.

1 Ответ

0 голосов
/ 24 марта 2020

Если вы используете последнюю версию Spring Security, есть несколько способов обработки авторизации с помощью этой платформы . Один из способов, который я знаю - но не притворяюсь лучшим - это реализовать пользовательский AccessDecisionVoter или, если AccessDecisionVoter недостаточно для удовлетворения ваших потребностей, пользовательский (хотя и более сложный) AbstractAccessDecisionManager . Вы можете найти хорошее руководство о том, как реализовать, настроить и включить собственный AccessDecisionVoter в блоге Tim te Beek . Затем в методе голосования (...) AccessDecisionVoter вы можете вызвать ваш внешний Сервер авторизации с запросом авторизации и получить ответ Разрешить / Запретить.

Существует международный стандарт (OASIS), который определяет синтаксис / формат и семантика для этого вида запроса / ответов авторизации ABA C, а также для политик / правил: XACML . XACML также имеет REST Profile , который определяет HTTP / REST API для серверов авторизации на основе XACML; и JSON Профиль , который определяет формат JSON для запросов / ответов в качестве альтернативы XML. Таким образом, XACML определяет стандартный способ вывода авторизации на сервер авторизации.

Некоторые из этих XACML-совместимых серверов могут хранить политики / правила ABA C (XACML) в базе данных, например, AuthzForce RESTful PDP с помощью плагина Provider Policy, например Поставщик политики MongoDB .

...