Концепция безопасности в .NET

advertisement
Подготовила Коронова Людмила, 991э.

Аутентификация: Кто вы?

Авторизация: Что вам позволено делать?

В традиционной модели главным вопросом
является личность пользователя, представляемая
классами Principal и Identity. В случае CAS вопрос
аутентификации сводится к идентификации сборок
с кодом, представляемой классом Evidence. Этот
класс «свидетельств» можно использовать для
определения различных характеристик сборки
таких, как ее цифровая подпись и происхождение.

Существуют разрешения нескольких типов,
представляемых множеством классов,
реализованных в интерфейсе IPermission. Для
реализации концепции безопасности, основанной
на идентификации пользователей, используется
класс Principal Permission. Для реализации
концепции CAS используется множество классов,
производных от CodeAccessPermission. Эти классы
служат для проверки разрешений всех сборок,
имеющих отношение к вызову тoгo метода,
который выполняется в данный момент.
Определение пользователей и
ролей в Windows
•Добавление нового пользователя и
группы
• Определение прав доступа к
общей папке
• Средства безопасности в NTFS
• Определение прав доступа к папке
NTFS
• Шифрование папки NTFS
•
Пуск
Панель
Управления
Администрирование
Управление
Компьютером
Папка
Свойства
Вкладка
Доступ
Общий Доступ
Папка
Свойства
Вкладка
Безопасность
Вкладка
Общие
Настройка различных функции .NET
• Разрешения
• Способы использования
• Интерфейс IPermission. Его методы
• Иерархия наследования Ipermission
• Класс PrincipalPermission
•Метод Demand класса
PrincipalPermission
• Пример использования методов
•Дополнительные методы
•


Безопасность, основанная на идентификации
пользователей: используется класс
PrincipalPermission, при помощи котopoгo
проверяется идентичность текущего пользователя
вызывающей нити.
Концепция CAS: для проверки индивидуальных
разрешений всех нитей, выполняющих текущий
метод, используются различные классы,
производные от класса CodeAccessPermission.




Программный код может определять разрешения,
которые ему нeобходимы для успешного выполнения;
Политика безопасности системы может предоставлять
коду запрошенные разрешения или отказывать в них;
Код может требовать, чтобы вызывающий eгo код
обладал нeкоторыми разрешениями при помощи
метода Demand;
Код может преодолевать решения, принятые исходя из
состояния стека, при помощи методов Assert, Deny и
PermitOnly.
Название
Описание
Синтаксические
сигнатуры
Copy
Cоздает идентичную копию существующего
объекта-разрешения
IPermission Сору();
Demand
Инициирует генерацию исключения
SecurityException
Intersect
Создает объект-разрешение, содержащий в
себе пересечение разрешений двух
существующих объектов-разрешений
IPermission Intersect
(IPermission target);
IsSubsetOf
Определяет, содержит ли объектразрешение подмножество разрешений,
заданных разрешениями дрyгогo объекта
IPermission
IsSubsetOf
(IPermission target);
Union
Создает объект-разрешение, чье множество
разрешений является объединением
множеств разрешений двух заданных
объектов
IPermission Union
(IPermission target);
void Demand();

Используется для проверки объекта принципала на
предмет верификации пользователя. Принципал
представляет зарегистрированногo в данный
момент пользователя, котopoгo вы хотите
распознать с точки зрения прав доступа.


Данный метод определяет, соответствует ли
текущий принципал указанному объекту
PrincipalPermission. Если проверка даст
отрицательный результат, будет сгенерировано
исключение SecurityException.Также этот метод
используется для принудительного подтверждения
аутентичности текущего принципала с тем, чтобы
избежать гeнерации исключения.
public void Demand();







String user1 = "Abbott";
String role1= “Straightмan";
PrincipalPermission PrincipalPerm1=new
PrincipalPermission(user1,role1);
String user2 = "Costello";
String role2 = "FunnyМan";
PrincipalPermission рр = new
PrincipalPermission(user2,role2);
PrincipalPerm1.Union(pp).Demand();



public Principal Permission (PermissionState state);
перечисление PermissionState определяет
разрешение со свободным доступом
(PermissionState.Unrestricted) или разрешение с
запретом доступа (PermissionState.None) к
защищаемому ресурсу.
public PrincipalPermission (string name, string role);
public PrincipalPermission (string name, string role,
bооl isAuthenticated);

FromXml реконструирует объект разрешение из
указанного XML представления.
public void FromXml (SecurityElement elem);

ToXml создает ХМL представление из текущего
состояния объекта разрешения.
Public SecurityElement ToXml();

IsUnrestricted возвращает булево значение,
указывающее, является ли разрешение разрешением со
свободным доступом (unrestricted).
public bооl IsUnrestricted();




Как зашифровать папку таким образом, чтобы при
переносе её на другой компьютер чтение стало бы
невозможным?
Как создать нового пользователя?
Какой из методов класса PrincipalPermission
инициирует генерацию исключения
SecurityException?
Какими производными классами обладает
интерфейс IPermission?
Download