Есть ли какая-либо система управления доступом на основе ролей на основе Java с открытым исходным кодом?
Контроль доступа на основе ролей
Ответ 1
Spring Безопасность может быть вам полезной.
Ответ 2
Я предполагаю, что вопрос, на который вы пытаетесь ответить, следующий:
Доступ ли пользователь u к операции op на объекте o?
Следует учитывать, как ваши объекты домена и группы пользователей определяются с точки зрения бизнеса (вне механизма AC). Для любой реализации RBAC вам необходимо настроить ее, чтобы сообщить, что представляют собой ваши пользователи и группы пользователей. Это повлияет на ваш выбор реализации RBAC.
Другой (более конкретный) вопрос: вам нужно поддерживать права переопределения, включает и исключает? В частности, хотите ли вы поддерживать сценарий, что объект o1 доступен для usergroup g1, но не пользователь u1 (который является частью группы g1)?
В зависимости от конкретных ответов jguard (который построен поверх JAAS) может быть очень хорошим вариантом - http://jguard.net/
Ответ 3
APACHE SHIRO Безопасность Java Framework
Он использует Контроль доступа на основе ролей по авторизации
Ответ 4
Существует множество возможных решений, но лучше всего (т.е. удовлетворяет ваши потребности, не будучи слишком тяжелым или слишком сложным для реализации) зависит от ваших требований:
-
Вы говорите об управлении доступом для веб-службы или что-то еще?
-
Какой контроль доступа вы хотите реализовать? Основано исключительно на URL-адресах ресурсов или в зависимости от состояния/метаданных запрашиваемых объектов? Роли простые или иерархические? Требуются ли разные действия для разных ролей?
-
Вам также нужно иметь дело с авторизацией?
Ответ 5
Существует несколько платформ, которые предоставляют вам систему авторизации:
-
Spring Security
Spring Security широко настраиваемый фреймворк широко используется для решения проблем аутентификации и контроля доступа (авторизации), возникающих в любом корпоративном приложении, разработанном на Java. -
Апач Широ
Apache Shiro - это мощная и простая в использовании инфраструктура безопасности Java, которая выполняет аутентификацию, авторизацию, криптографию и управление сеансами. С помощью простого в понимании API Shiros вы можете быстро и легко защитить любое приложение - от самых маленьких мобильных приложений до самых больших веб-приложений и приложений для предприятий. -
JAAS (службы аутентификации и авторизации Java)
JAAS - это один из API-интерфейсов безопасности, который состоит из пакетов Java, предназначенных исключительно для аутентификации и авторизации пользователей. Представленный как дополнительный пакет в Java SE 1.3, JAAS позже был интегрирован в JDK, начиная с JDK 1.4. -
OACC
Эта инфраструктура безопасности приложений Java предназначена для точного управления доступом на уровне объектов. Его задача - предоставить полнофункциональный API для обеспечения, а также для управления потребностями приложения в аутентификации и авторизации. Он предлагает полную реализацию гибкой и надежной модели безопасности. -
jCasbin
jCasbin - это мощная и эффективная библиотека управления доступом с открытым исходным кодом для проектов Java. Он обеспечивает поддержку принудительной авторизации на основе различных моделей контроля доступа.
Ответ 6
Крепость - это ANSI RBAC совместимый движок (INCITS 359) и выпущена под лицензией BSD с открытым исходным кодом. Вы можете оттянуть это отсюда: http://iamfortress.org.