Не видел универсального инструмента для этого, но ...
.... Я видел, как этот случай реализован ("заново изобретен и перепрограммирован") несколько раз.Я видел, что некоторые из новейших библиотек и сред имеют свои собственные права доступа (пример: asp.net).
Вы не упомянули или не пометили, если уже выбрали существующую среду программирования для своегоприложение, может быть, вы уже имеете в виду фреймворк, и, может быть, этот фреймворк имеет несколько библиотек для управления тем, как и к каким модулям, может получить доступ пользователь.
Обычно набор библиотек для этого разделен на два раздела..
Один раздел - это уровень доступа к данным, в котором хранятся пользователи, роли и права доступа для каждой роли или пользователя.Обычно это набор таблиц в базе данных приложения.Но могут быть и некоторые файлы конфигурации, такие как XML.
Другой раздел кода связан с уровнем логического или пользовательского интерфейса, и это очень специфично для языка программирования и среды программирования, которые вы используете,вот почему я думаю, что нет универсального инструмента.