да, это именно та проблема, для решения которой предназначены права OpenSSO. На прошлой неделе я провел демонстрацию на JavaOne, где демонстрировалась демонстрационная система управления учетными записями мобильных телефонов с тремя политиками:
- Каждый пользователь телефона может читать свои собственные разрешения (например, может загружать музыку / видео) и журнал вызовов.
- Владелец учетной записи может читать и записывать разрешения для всех телефонов в учетной записи, а также просматривать журналы вызовов для всех телефонов в учетной записи.
- Владелец счета может читать и записывать данные по всей учетной записи (например, адрес для выставления счета).
Я опубликую исходный код в демоверсии и объясню, как его развернуть на моем блоге .
Чтобы ответить на вторую часть вашего вопроса, существует корпоративный репозиторий для политики, но он применяется отдельно для каждого приложения. В демоверсии большая часть принудительного применения выполняется с помощью фильтра сервлетов, который выполняет вызовы для каждого запрошенного URL. Это работало хорошо, так как мы использовали веб-сервисы RESTful, которые выражают запрошенный ресурс в URL. В одном месте мы сделали явный вызов политики, поскольку шаблон URL не соответствовал политике - клиент мог перейти к ресурсу учетной записи через телефонный URL. Я ожидаю, что мог бы сконструировать другую политику для этого, но я действительно хотел показать явный вызов с правом доступа.