Пример Device Access демонстрирует использование паттерна Privilege Separation.
Архитектура примера
Пример содержит три сущности: Device, LoginManager и Storage.
В этом примере сущность Device обращается к сущности Storage для получения информации и к сущности LoginManager для авторизации.
Сущность Device получает доступ к сущности Storage только после успешной авторизации.

Пример демонстрирует возможность разделения логики авторизации и логики доступа к данным на независимые компоненты. Такое разделение гарантирует, что доступ к данным может быть открыт только после успешной авторизации. При этом контроль за тем, что авторизация была проведена и закончилась успешно, осуществляется модулем безопасности. Кроме этого, такая архитектура позволяет производить независимую разработку и тестирование логики авторизации и логики предоставления доступа к данным.
Политика безопасности в примере Device Access имеет следующие особенности:
Device имеет возможность обращаться к сущности LoginManager для авторизации.GetInfo() сущности Storage управляют методы модели безопасности Flow:session, имеет два состояния: unauthenticated и authenticated.unauthenticated.unauthenticated в authenticated и обратно.session создается при запуске сущности Device.Device метода Login() сущности LoginManager состояние объекта session изменяется на authenticated.Device метода Logout() сущности LoginManager состояние объекта session изменяется на unauthenticated.Device метода GetInfo() сущности Storage проверяется текущее состояние объекта session. Вызов разрешается, только если текущее состояние объекта – authenticated.Файлы примера
Код примера и скрипты для сборки находятся по следующему пути:
/opt/KasperskyOS-Community-Edition-<version>/examples/device_access
Сборка и запуск примера
См. "Сборка и запуск примеров".
В начало