Многоуровневая авторизация
Мне нужно реализовать авторизацию для некоторых общедоступных API. Внешний объект должен иметь возможность использовать API после аутентификации и авторизации. Базовая аутентификация будет использоваться для выполнения аутентификации. Авторизация должна основываться на ролях и должна выполняться на нескольких уровнях:
- Если указанный пользователь имеет роль system_user, разрешите доступ к API еще
- Если указанный пользователь не имеет роли system_user, выясните, какая учетная запись, к какому устройству (с которого пользователь пытается получить доступ) сопоставлена в базе данных. Как только учетная запись была идентифицирована, узнайте, принадлежит ли эта учетная запись пользователю, и пользователь получил правильную роль для этой учетной записи.
Одним из способов реализации этой логики является то, что я создаю все проприетарное с использованием баз данных и кода. Но прежде чем я сделаю это, я хочу знать, есть ли какие-нибудь инструменты, которые могут помочь в реализации этой логики с помощью некоторых правил, таких как XACML