Пример 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
Сборка и запуск примера
См. "Сборка и запуск примеров".
В начало