Использование возможностей.NET Framework при построении системы безопасности приложения ДокладчикMicrosoft.

Презентация:



Advertisements
Похожие презентации
Тренинг «Разработка веб-приложений на ASP.NET» Занятие 1 Знакомство с ASP.NET Гайдар Магдануров
Advertisements

ДонНУ, кафедра КТ, проф.В.К.Толстых Технологии разработки Internet- приложений ASP.NET приложения: Безопасность – аутентификация Из цикла лекций «Технологии.
1 ©Павловская Т.А. Язык С# Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Пряники: Мотивационные программы 2.0. Любко Алексей MVP Developer Security.
Безопасность в ASP.NET приложениях ДокладчикMicrosoft.
К построению и контролю соблюдения политик безопасности распределенных компьютерных систем на основе механизмов доверия А. А. Иткес В. Б. Савкин Институт.
Объектный доступ к Cache из среды.NET Александр Харитонов, InterSystems.
ФИЛОСОФИЯ.NET Любому современному программисту, который желает идти в ногу с последними веяниями, каждые несколько лет приходится переучиваться.
Web-сервисы. Понятие сервиса Сервисы в Web являются наследниками COM-объектов в обычных и распределенных приложениях. COM-объекты предоставляли любому.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
22 мая 2013, Киев Авторизация в приложениях SharePoint Станислав Выщепан SharePoint MVP Ай-Теко, Москва.
Учетные записи пользователей и групп Дисциплина «Построение Windows-сетей» Сергеев А. Н. Волгоградский государственный социально-педагогический университет.
Версия сборки Номер версии сборки имеет формат major.minor.build.revision. Например, Значения major(старший), minor(младший), build (компоновка)
Slide Title Безопасность Windows NT Server 4.0 Slide Title Корпоративная сеть Уровни информационной инфраструктуры ПРИЛОЖЕНИЯ СУБД ОС СЕТЕВЫЕ СЛУЖБЫ.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – директивы Из цикла лекций «Технологии разработки Internet-приложений»
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx.
Служба каталогов Active Directory Дисциплина «Построение Windows-сетей» Сергеев А. Н. Волгоградский государственный социально-педагогический университет.
Microsoft SQL Server Сервер Веб-службыВеб-службы Службы клиента Объекты приложения Провайдер метаданных Библиотека классов Уровень клиента Встроенное.
Проф. В.К.Толстых, WCF-службы Понятие безопасности Из цикла лекций «Internet-технологии разработки приложений» для студентов 4-го курса.
Обеспечение безопасности данных. Управление доступом к данным. Управление доступом к данным. Управление пользователями БД. Управление пользователями БД.
Транксрипт:

Использование возможностей.NET Framework при построении системы безопасности приложения ДокладчикMicrosoft

Главные темы Разрешения доступа кода aka CAS Разрешения Identity Базируются на свидетельстве (aka Evidence) Безопасность на основе ролей aka PrincipalPermission Политика безопасности Демонстрация всего вышеперечисленного!

Разрешения доступа кода Два основных типа Доступ к ресурсу Доступ к операции Наследуются от CodeAccessPermission Код запрашивает разрешения.NET Framework предоставляет... на основе свидетельства

Основы CAS Код с безопасными типами aka type-safe Императивный и декларативный синтакс КодАтрибут Запрос разрешений Частично доверяемые сборки Разрешения для библиотек классов

Код с безопасными типами JIT-компилятор проверяет код Утилита PEVerify проверяет код на безопасность типов Компилятор генерирует (или не генерирует) безопасный код Влияет на предоставление разрешений

Императивный синтаксис FileIOPermission filePerm = new FileIOPermission( filePerm.Demand();

Декларативный синтаксис [SqlClientPermission( Action=SecurityAction.Demand, ConnectionString=Database=Pubs;Server=(local)) ] public void MyMethod(connectionString) { SqlConnection conn = new SqlConnection(connectionString); conn.Open(); }

Запрос разрешений На уровне сборки Сохраняются в манифесте Средство сообщить среде о необходимых разрешениях

Типы запросов МинимальныеНеобязательныеОтклоненные Именованные наборы NothingExecutionFullTrustInternetLocalIntranetSkipVerification XML представление СтрокаФайл

Запрос разрешения через XML представление [assembly:PermissionSetAttribute( SecurityAction.RequestMinimum, ")]

Частично доверяемые сборки Частично доверямые сборки не могут обращаться к системным библиотекам Нужно использовать AllowPartiallyTrustedCallersAttribute Некоторые системные библиотеки имеют этот атрибут Accessibility.dllIEExecRemote.dllMicrosoft.VisualBasic.dllMscorlib.dllSystem.dllSystem.Data.dllSystem.Drawing.dll System.Web.dll (1.1) System.Web.Mobile.dll (1.1) System.Web.Services.dll System.Web.RegularExpressions.dll (1.1) System.Windows.Forms.dllSystem.XML.dll

Разрешения для библиотек классов Требование – Demand Полный проход стека вызовов Требование при сборке – LinkDemand Нет прохода стека Кроме статических конструкторов Требование при наследовании – InheritanceDemand Класс или метод Требует наличия разрешения для наследованых классов Запросы не распространяются на вложенные классы

Разрешения Identity Назначаются на основе свидетельства Определяются загрузчиком (хостом).EXEСервисASP.NET Internet Explorer Цифровая подпись издателя Web-сайт Strong Name (открытый ключ, имя, версия) URL Зона (Internet Explorer)

Запрос Identity [UrlIdentityPermission( SecurityAction.Demand, Url=" Public void DoSomething() { }

Ролевая безопасность Политика доступа на основе ролей Исполняемый код всегда идентифицирован Windows - пользователь Generic – cобственная схема аутентификации Principal – контекст безопасности Включает в себя Identity PrincipalPermission обобщает подход Запросы разрешений на основе Identity Вызывающий код обязан совпадать с встроенной ролью

Определение текущего пользователя // 1-й способ (== Win32) WindowsIdentity id = WindowsIdentity.GetCurrent(); // 2-й способ WindowsIdentity id = Thread.CurrentPrincipal.Identity; // 3-й способ (в ASP.NET) WindowsIdentity id = Context.User.Identity;

Проверка принадлежности к роли // Императивная PrincipalPermission myPerm = new PrincipalPermission(Dima, Developer); myPerm.Demand(); // Декларативная [PrincipalPermission( SecurityAction.Demand, Name = «Dima", Role = Manager")] public static void SecureAccess() { } // Прямая WindowsPrincipal MyPrincipal = (Thread.CurrentPrincipal as WindowsPrincipal); if(MyPrincipal.IsInRole(«Developer")) { }

Политика безопасности Настраивается через.NET Framework Configuration caspol Состоит из Уровней Групп кода Именованных наборов разрешений

Уровни политики безопасности ИерархияEnterpriseMachineUserAppDomain Нижние уровни не могут увеличить разрешения.. но могут уменьшить

Группы кода Логическая группировка, основанная на AllMembershipConditionApplicationDirectoryMembershipConditionHashMembershipConditionPublisherMembershipConditionSiteMembershipConditionStrongNameMembershipConditionUrlMembershipConditionZoneMembershipCondition Ассоциируется с набором разрешений Свидетельство используется для проверки вхождения

Наборы разрешений Включают в себя NothingExecutionInternetLocalIntranetEverythingFullTrust Состоят как минимум из одного разрешения

Свидетельство Информация от загрузчика или хоста Включает в себя Identity Используется средой для определения принадлежности к группе кода... тем самым получая набор разрешений

Демонстрация Разработка Add-in с ограниченными правами Демонстрация Разработка Add-in с ограниченными правами