Мы планируем преобразовать систему нашей компании в систему на основе микросервисов. Эти микро-сервисы будут использоваться нашими внутренними приложениями компании и сторонними партнерами, если это необходимо. Один для бронирования, один для продуктов и т. Д.
Мы не уверены, как справляться с ролями и областями применения. Идея состоит в том, чтобы создать 3 основные роли пользователя, такие как «Администраторы», «Агенты» и «Конечные пользователи», и позволить приложениям-пользователям настраивать области при необходимости.
- Администраторы могут создавать, обновлять, читать и удалять все ресурсы по умолчанию (для своей компании).
- Агенты могут создавать, обновлять и читать данные для своей компании.
- Конечные пользователи могут создавать, обновлять, удалять и читать данные, но не могут получать доступ к тем же конечным точкам, что и агенты или администраторы. Они также смогут создавать или изменять данные, но не на том же уровне, что агенты или администраторы. Например, конечные пользователи могут обновить или прочитать информацию своей учетной записи, так же, как агент сможет сделать это для них, но они не могут видеть или обновлять заметки администратора.
Предположим, что агенты по умолчанию могут создавать, считывать и обновлять каждый ресурс для своей компании, и это их максимальная область действия, которую можно запросить для их токена / сеанса, но разработчики клиентского приложения (API-потребителя) решили, что один из их агентов может читать и создавать только определенные ресурсы.
Рекомендуется ли обрабатывать это в нашей внутренней безопасности и разрешать им записывать эти данные в нашу базу данных или разрешать клиентам обрабатывать их внутренне, запрашивая токен с меньшей областью действия, и разрешать им писать, какой агент будет иметь какую область в своей базе данных ? Таким образом, мы должны отслеживать только области действия токенов.
Недостатком этого является то, что нашей команде также потребуется создать отлаженные механизмы доступа во внутренних приложениях.
При таком подходе микросервисы и их система авторизации не должны беспокоиться о потребностях клиентов, потому что они являются только потребителями, а не частью системы (даже если некоторые из этих потребителей являются нашими собственными внутренними приложениями)?
Является ли эта делегация хорошим подходом?
payment:[read]
, так и у продавцаpayment: [create]
. Вы агрегируете разрешения в этом случае?