Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВладислав Неёлов
1 Delivering Excellence in Software Engineering ® EPAM Systems. All rights reserved. Безопасность в ASP.Net Mikalai Strylets Software Engineer EPAM Systems Brest branch office, Belarus 1
2 ® EPAM Systems. All rights reserved. Безопасность в ASP.Net Cредства защиты веб-приложений от несанкционированного доступа: –Аутентификация (authentication) называется процесс идентификации пользователей приложений. –Авторизация (authorization) – это процесс предоставления доступа пользователям на основе их идентификационных данных. 2
3 ® EPAM Systems. All rights reserved. Аутентификация ASP.NET совместно с веб-сервером обеспечивает несколько возможных типов аутентификации: –Windows (default): этот метод основывается на использовании учётных записей Windows –Forms: аутентификация формой или, как её ещё называют, аутентификация на основе Cookie-файлов –Passport: это единая система регистрации, созданная Microsoft, которой можно воспользоваться на любом Web- сайте, являющемся членом этой системы. –None Выбор типа определяет механизм хранения маркеров аутентифицированного пользователя: –В случае типа Windows маркер помещается в контекст потока рабочего процесса ASP.NET. –Если используется тип Forms, маркер передается от клиента к серверу и обратно в cookie-файле. 3
4 ® EPAM Systems. All rights reserved. web.config 4
5 ® EPAM Systems. All rights reserved. Авторизация Метасимвол * используется для представления всех пользователей, а ? – для представления анонимных пользователей. Элементы и поддерживают три атрибута: users, roles и verbs При определении прав доступа пользователя к ресурсу ASP.NET придерживается следующего алгоритма: –Строится список всех и элементов, начиная с ближайшего к ресурсу web.config, а затем добавляя элементы из web.config более высокого уровня, и, наконец, элементы machine.config. –Список просматривается сверху вниз до первого совпадения имени или роли в списке с именем или ролью текущего пользователя. –Тот элемент, который будет обнаружен при совпадении, определяет, может ли пользователь получить доступ к ресурсу. То есть, если обнаружили при совпадении элемент, то может, если то нет. 5
6 ® EPAM Systems. All rights reserved. IPrincipal & IIdentity Если клиент аутентифицируется, то информация о нем доступна посредством свойства User класса Page или класса HttpContext. Свойство User указывает на реализацию интерфейса IPrincipal. Этот интерфейс содержит одно свойство и один метод. –Свойство Identity является указателем на реализацию интерфейса IIdentity, –а метод IsInRole() проверяет членство клиента в указанной группе. 6 public interface IIdentity { string AuthenticationType { get; } bool IsAuthenticated { get; } string Name { get; } }
7 ® EPAM Systems. All rights reserved. Аутентификация Forms 7
8 ® EPAM Systems. All rights reserved. Аутентификация Forms Когда пользователь первый раз запрашивает ресурс, требующий аутентификации, сервер перенаправляет запрос в выделенную страницу регистрации. Регистрационная страница принимает данные пользователя (как правило, имя и пароль), а затем приложение аутентифицирует пользователя (предположительно с помощью базы данных). Если пользователь успешно зарегистрировался, сервер предоставляет ему аутентификационный файл cookie в зашифрованном виде, который действителен на протяжении сеанса (но может быть сохранен на клиентском компьютере для использования в последующих сеансах). Пользователь перенаправляется к интересующему его ресурсу, однако теперь он предоставляет в запросе идентификационный cookie и получает доступ. 8
9 ® EPAM Systems. All rights reserved. Аутентификация Forms: преимущества и недостатки Преимущества: –Во-первых, есть возможность определить по своему усмотрению внешний вид формы регистрации вместо стандартного окна регистрации Windows;. –Во-вторых, вы полностью контролируете вводимую информацию; –В третьих, сведения о пользователях теперь могут храниться не –только в базе данных SAM (Security Account Manager) или Active Directory, но и в хранилище другого типа, например: в базе данных, в каталоге LDAP, в виде XML-файлов или же обычного текстового файла. –И наконец, отпадает необходимость связывать политику безопасности сервера с политикой Web-приложения, поскольку, как только что было сказано, все сведения о пользователях можно вынести в отдельное хранилище данных, не имеющее никакого отношения к учётным записям ОС. Недостатки: –пользователь должен разрешить применение cookie-файлов 9
10 ® EPAM Systems. All rights reserved. Class FormsAuthentication Чтобы аутентификация на основе cookie заработала, нужно реализовать страницу регистрации. Для реализации страницы регистрации платформа ASP.NET предоставляет класс FormsAuthentication. Этот класс состоит главным образом из статических методов, управляющих аутентификационными файлами cookie. Например, –чтобы предоставить такой файл клиенту, нужно вызвать метод SetAuthCookie(). –метод RedirectFromLoginPage() предоставляет cookie клиенту и перенаправляет клиента в запрошенную им страницу. 10
11 ® EPAM Systems. All rights reserved. FormsAuthentication Пример 11
12 ® EPAM Systems. All rights reserved. MemberShip, Roles, Profile Membership – управление учетными записями Roles – управление ролями (правами) пользователей Profile – хранение персональных настроек пользователя 12
13 ® EPAM Systems. All rights reserved. Схема работы Создание необходимых таблиц в БД Регистрация в web.config для приложения Конфигурирование прав доступа на основе web.config в директориях приложения Использование элементов управления, работающих с Membership/Roles –Login, LoginView, LoginName, LoginStatus… 13
14 ® EPAM Systems. All rights reserved. Добавление в БД таблиц для поддержки безопасности 14
15 ® EPAM Systems. All rights reserved. Избранные таблицы 15
16 ® EPAM Systems. All rights reserved. Membership MembershipProvider –ActiveDirectoryMembershipProvider –SqlMembershipProvider Membership API –Управление учетными записями 16
17 ® EPAM Systems. All rights reserved. Roles RoleProvider Управление доступом пользователей на основании ролей Механизмы работы со списком ролей и пользователей, относящимся к роли Интеграция с элементами управление Использование ролей на уровне файлов конфигурации 17
18 ® EPAM Systems. All rights reserved. Элементы управления Поддержка Membership и Roles –Форма аутентификации –Отображение имени пользователя –Форма восстановления пароля –Мастер создания учетных записей –Отображение контента на основании роли пользователя 18
19 ® EPAM Systems. All rights reserved. Profile ProfileProvider Удобный способ хранения пользовательских данных Автоматическое сохранение и восстановление коллекции Profile 19
20 ® EPAM Systems. All rights reserved. Конфигурирование users, roles, rules 20
21 ® EPAM Systems. All rights reserved. Программное конфигурирование membership, users, roles 21 string userName = "Default User"; string password = string.Empty; string newPassword = string.Empty; // Создание новой учётной записи Membership.CreateUser(userName, password); // Получение информации об определённом пользователе MembershipUser user = Membership.GetUser("TheUser"); // Изменить пароль пользователя user.ChangePassword(user.GetPassword(), newPassword); // Cбросить пароль (то есть удалить старый и // автоматически сгенерировать новый) string newGenPass = user.ResetPassword();
22 ® EPAM Systems. All rights reserved. Программное конфигурирование membership, users, roles 22 // Cоздать роли Admin и Guest и // заполнить их именами пользователей Roles.CreateRole("Admin"); Roles.AddUserToRole("TheUser", "Admin"); Roles.CreateRole("Guest"); var guests = new[] { "UserX", "Godzilla" }; Roles.AddUsersToRole(guests, "Guest"); // Установливаем, принадлежит ли пользователь к // определенной роли, и включаем соответствующие функции if (User.IsInRole("Admin")) { // включаем функции, специфические для данной роли }
23 ® EPAM Systems. All rights reserved. Пример 23
24 ® EPAM Systems. All rights reserved. Ссылки Безопасность в ASP.NET Security Tutorials Безопасность в ASP.NET (© Гайдар Магдануров) Средства безопасности ASP.NET. Часть 1 – Аутентификация Средства безопасности ASP.NET. Часть 2 - Авторизация Form authentication and authorization in ASP.NET Программирование на ASP.NET (© Снетков) d- f7a2f5bf2022.aspx?autostart=false&width=768&height=432&cbartype=botto m video on ASP.NET Basic authentication 944d- f7a2f5bf2022.aspx?autostart=false&width=768&height=432&cbartype=botto m 24
25 ® EPAM Systems. All rights reserved. Q & A
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.