Десять лет спустя ... С тех пор мир эволюционировал совсем немного, и, в частности, возникла совершенно новая парадигма: внешняя авторизация. Чтобы быть справедливым, каждая среда разработки имеет свою собственную версию (например, CanCanCan в Ruby или Spring Security в Java или авторизация на основе утверждений в C #). Внешняя авторизация направлена на отделение логики авторизации от бизнес-логики. Идея заключается в том, что потребности в авторизации могут развиваться независимо от бизнес-логики. Например, ваша бизнес-логика обеспечивает доступ к банковским счетам (просмотр / редактирование / удаление / перевод). Функциональность стабильна - она не изменится в ближайшее время. Однако потребности в авторизации могут изменяться из-за законодательства (GDPR, Open Banking ...) или других требований (делегирование, родитель-ребенок, VIP ...). Вот почему вы хотите сохранить авторизацию внешне .
Для этого существует модель под названием управление доступом на основе атрибутов ( abac ), которая является развитием / расширением более известного управления доступом на основе ролей ( RBAC ). В RBAC управление доступом ориентировано на идентичность. Он основан на пользователе, роли и группах, к которым принадлежит пользователь. Это не достаточно часто раз. В ABAC вы можете использовать атрибуты пользователя, ресурса, контекста (времени) и действия. ABAC также позволяет писать политики на простом старом английском языке, используя стандартные языки политик ( xacml или alfa или Rego). Облачные платформы (AWS и Google) также реализовали свой собственный язык (называемый Google IAM и AWS IAM соответственно).
Некоторые из преимуществ ABAC:
- гибкость: вы можете изменить политику авторизации, не касаясь приложений / API
- возможность повторного использования: вы можете применять те же политики к данным, API, приложениям или инфраструктуре.
- видимость: выражайте авторизацию в виде политик, а не жестко кодируйте логику, что означает, что вы можете легко проводить аудит политик и понимать, что возможно / что нет
- проверяемость: с ABAC вы получаете единый журнал всех предоставленных или запрещенных прав доступа.
Если вы хотите узнать больше, посетите страницы Википедии для ABAC и ALFA , а также NIST на ABAC .
.