Отказ от ответственности : я являюсь разработчиком для IBM и работаю над нашим продуктом, который широко использует XACML (Tivoli Security Policy Manager). Я немного склонен к XACML.
Я думаю, что XACML - отличная альтернатива, главным образом потому, что он может поддерживать практически любую модель безопасности. Я бы предложил смоделировать существующее решение RBAC в XACML (см. профиль ), а затем расширить его, чтобы включить более детальный контроль доступа там, где этого требуют ваши бизнес-требования.
Включение кода авторизации в политику дает дополнительное преимущество, заключающееся в возможности изменения модели безопасности вашего приложения без перекомпиляции.
Существуют ли какие-либо существующие приложения, которые перешли на XACML из источника RBAC?
К сожалению, мне неизвестны какие-либо конкретные примеры, по крайней мере, те, о которых я могу говорить публично. Существует внутренний проект IBM, который выделил месяц на реализацию модуля авторизации, но выполнил его за неделю, выполнив экстернализацию с помощью нашей реализации XACML. Это, очевидно, отличается от вашего примера, так как это был проект разработки «зеленых полей», но подчеркивает, что при общем подходе, который вы рассматриваете, есть преимущества.