Форма аутентификации что это
Что такое аутентификация, и как ее пройти без проблем и ошибок
Вы помните, как в школе проходили новую тему по математике, физике, химии и другим сложным предметам? Открываешь книгу, а там масса непонятных слов. Но постепенно мы изучали термины, и все становилось на свои места.
Заканчивая школу, мы не перестаем учиться. Жизнь стремительно меняется, развиваются технологии, побуждая нас получать новые знания и навыки. Чтобы свободно выходить в интернет, общаться и работать в сети, нужно осваивать основные понятия. Сегодня мы разберемся, что такое аутентификация, какой она бывает, и чем этот процесс отличается от идентификации и авторизации.
Определение
С процессом аутентификации в том или ином виде мы сталкиваемся довольно часто.
Аутентификация – это процедура установления подлинности или соответствия.
Чтобы объяснить это простыми словами, приведу пример.
Представьте себе, что недавно купили квартиру или сменили замки, к ключам еще не привыкли. Подходим к дверям и пытаемся вставить ключ в замочную скважину. Если мы ошиблись, то аутентификация не пройдена, ключ не соответствует замку, не открывает его. Если, наоборот, все сошлось, и двери открываются, значит, проверка подлинности пройдена.
Другие примеры аутентификации:
Отличие от идентификации и авторизации
Эти понятия легко можно спутать, потому что они являются этапами одного процесса, частями мозаики. Вернемся к нашему примеру с дверью в квартиру. Чтобы открыть ее, нам нужен ключ, он выступает идентификатором, то есть инструментом, при помощи которого мы будем совершать нужное действие. Вставили его в замок, покрутили – прошли идентификацию.
Если двери открылись, значит, идентификатор верный, подлинный. Это уже аутентификация или, говоря другими словами, процедура проверки. Последний этап – авторизация, мы входим в квартиру, то есть получаем доступ.
Теперь пример с социальными сетями. Мы открываем сайт или приложение в телефоне, вводим логин и пароль – это наши идентификаторы. Затем нажимаем Enter, и информация отправляется на аутентификацию. Программа проверяет, существует ли пользователь с такими учетными данными. Если мы все сделали правильно, то происходит авторизация. Мы входим в социальную сеть и попадаем именно на свою страницу, видим оповещения, диалоги с друзьями, добавленные записи в ленте.
Если вы перепутаете эти термины, ничего страшного, но чтобы понимать, о чем конкретно идет речь в том или ином случае, лучше научиться их отличать.
Виды аутентификации
Пользователи интернета в моем представлении подразделяются на оптимистов и параноиков. Оптимисты не заморачиваются кодами и сложными паролями. Фамилия, дата рождения или слово “qwerty” вполне могут стать их паролем от аккаунта в соцсети или электронной почты. Главное, чтобы было легко запомнить.
Параноики придумывают сложные пароли, шифры и коды, выходят в интернет только со своих устройств и через проверенные сети, пароли хранят у жены в чулке. Они всегда обеспокоены безопасностью.
Если вы относитесь к оптимистам, то я должна вас предупредить. В интернете, как и в реальной жизни, довольно много желающих воспользоваться вашим простодушием, украсть коды доступа, взломать аккаунт, снять деньги со счета. Для этого уже придумано множество технических средств и способов развода.
Поэтому системы аутентификации постоянно совершенствуются, чтобы уменьшить шансы злоумышленников. С другой стороны, каждый сервис, сайт, приложение стремится к тому, чтобы пользователям было удобно и приятно.
Со временем для разных случаев появились такие виды аутентификации:
Как видите, есть разные виды аутентификации для разных программ и случаев. Использовать нужно один из них или несколько вместе в зависимости от целей и задач.
Чем двухуровневая проверка лучше одноуровневой
Двухфакторная аутентификация подразумевает использование сразу двух перечисленных выше методов защиты. Например, мы вставляем карту в терминал и вводим ПИН-код. Или вводим учетные данные от страницы в соцсети и затем получаем одноразовый код на телефон, привязанный к аккаунту.
Такая двойная проверка не требует больших финансовых затрат, она довольно простая и удобная для пользователей, а также значительно увеличивает безопасность данных.
Параноики считают, что можно сделать даже трех- и четырехуровневую проверку, главное, чтобы враги не получили доступ к информации. Но такие меры чаще всего являются излишними, значительно усложняют и замедляют все операции. Можно сказать, что двухэтапная проверка – это компромиссное решение для безопасности и удобства.
Ошибки аутентификации: причины и пути решения
При подключении к сети Wi-Fi, одного устройства к другому или при входе в любую программу и на сайт могут возникнуть проблемы. Чаще всего они связаны с такими причинами:
Как видим, причины могут быть разными. Чтобы разобраться с ними, нужно иметь запасной план, уметь работать с настройками программ и устройств или знать того, кто умеет это делать.
Заключение
Надеюсь, эта статья помогла вам разобраться с тем, для чего нужна аутентификация, и какие ее виды бывают. Также мы обсудили возможные проблемы при проверке подлинности и пути их решения. Если у вас возникла конкретная ошибка доступа, напишите об этом в комментариях, обсудим.
Подписывайтесь на новости iklife.ru, учитесь вместе с нами работать с разными программами, сервисами и приложениями, чтобы идти в ногу со временем.
Всего доброго. До новой познавательной встречи.
Аутентификация с помощью форм
Как будет показано далее, ASP.NET включает всю необходимую инфраструктуру. Посредством аутентификации с помощью форм платформа ASP.NET создает cookie-набор безопасности для зарегистрированных пользователей, обслуживает их и автоматически поддерживает контекст безопасности для последующих запросов. Лучше всего то, что она управляет этим процессом эффективно и в высшей степени устойчиво противостоит подделкам.
Аутентификация с помощью форм основана на билетах (также называемых маркерами). Это значит, что когда пользователь регистрируется, он получает так называемый билет с базовой информацией о себе. Информация сохраняется в зашифрованном cookie-наборе, который присоединяется к ответу, так что автоматически отправляется в каждом последующем запросе.
Когда пользователь запрашивает страницу ASP.NET, которая не доступна анонимным пользователям, исполняющая среда ASP.NET проверяет, имеется ли билет аутентификации с помощью форм. Если нет, производится автоматическая переадресация на страницу входа. С этого момента начинаются ваши заботы. Вы должны создать эту страницу входа и внутри нее проверить пользовательское удостоверение. Если пользователь успешно прошел проверку, вы просто сообщаете инфраструктуре ASP.NET об успехе операции (вызвав метод класса FormsAuthentication), после чего исполняющая среда автоматически устанавливает cookie-набор аутентификации (который в действительности содержит билет) и переадресует пользователя на запрошенную им страницу. С этим запросом исполняющая среда определяет, что cookie-набор аутентификации с билетом имеется в наличии и открывает доступ к странице.
Почему стоит использовать аутентификацию с помощью форм?
Вы получаете полный контроль над кодом аутентификации.
Вы получаете полный контроль над внешним видом формы входа.
Она работает с любым браузером.
Она позволяет выбирать способ хранения информации о пользователях.
Все эти причины более подробно рассматриваются в последующих разделах.
Контроль над кодом аутентификации
Поскольку аутентификация с помощью форм реализована полностью внутри ASP.NET, вы получаете полный контроль над выполнением аутентификации. Вам не нужно полагаться ни на какую внешнюю систему, как это имеет место при аутентификации Windows. Поведение аутентификации с помощью форм можно настроить под свои нужды.
Контроль над внешним видом формы входа
Вы имеете ту же степень контроля над внешним видом аутентификации с помощью форм, что и над ее функциональностью. Другими словами, входную страницу входа можно оформлять как вам угодно. Однако если вы не хотите заниматься этим, можете воспользоваться высокоуровневым API-интерфейсом членства (Membership API) и элементами управления безопасностью ASP.NET. В число этих элементов управления входит готовый к использованию и в высокой степени настраиваемый элемент управления Login.
Гибкость в настройке внешнего вида при других методах аутентификации недоступна. Аутентификация Windows требует, чтобы браузер запрашивал пользовательское удостоверение.
Работа с любым браузером
Аутентификация с помощью форм использует в качестве пользовательского интерфейса стандартный HTML, так что все браузеры могут его обработать.
Для ввода и отправки пользовательского удостоверения аутентификация с помощью форм использует стандартные формы HTML. Это значит, что для шифрования и безопасной передачи этого удостоверения нужно применять SSL. В противном случае при обратной отправке данных на сервер информация передается как простой текст.
Хранение информации о пользователях
Аутентификация с помощью форм по умолчанию хранит пользователей в файле web.config, но эту информацию можно хранить где угодно. Для этого понадобится только написать код, который обращается к хранилищу данных и извлекает информацию о пользователях. (В случае применения интерфейса Membership API даже этого делать не придется). Общим примером может служить хранение информации о пользователях в базе данных.
Гибкость в хранении информации о пользователях также означает возможность контроля над созданием и администрированием пользовательских учетных записей, а также присоединения дополнительной информации к этим учетным записям, такой как персональные предпочтения по настройке внешнего вида веб-сайта. Можно также присоединить специфические бизнес-детали, такие, например, как зашифрованная информация о кредитной карте, если сайтом является онлайновый магазин.
Когда не следует применять аутентификацию с помощью форм?
До сих пор рассматривались причины, по которым аутентификация с помощью форм становится привлекательным выбором для регистрации пользователей. Однако аутентификация с помощью форм имеет и отрицательные стороны:
Вы должны самостоятельно создавать пользовательский интерфейс для регистрации пользователей. Можно либо целиком создать собственную страницу входа, либо использовать элементы управления безопасностью ASP.NET.
Вы должны поддерживать каталог удостоверений пользователей.
Вы должны предпринимать дополнительные предосторожности против вмешательства в сетевой трафик.
Более подробно об этом пойдет речь в последующих разделах. Первые два недостатка можно устранить за счет применения интерфейса Membership API, предоставляющего предварительно разработанные элементы управления и схему хранения удостоверений с готовым решением на основе SQL Server.
Создание собственного интерфейса регистрации
Как упоминалось ранее, аутентификация с помощью форм предоставляет полный контроль над интерфейсом, через который пользователи входят в ваше веб-приложение. Наряду с преимуществами, этот подход требует дополнительной работы, поскольку вы должны самостоятельно построить страницу входа. Другие варианты аутентификации предлагают готовые формы. Например, если применяется аутентификация Windows, браузер предложит стандартное диалоговое окно. В Passport-аутентификации для регистрации пользователей всегда применяется пользовательский интерфейс сайта Passport.
С другой стороны, новый интерфейс Membership API включает предварительно подготовленный элемент управления Login, который может применяться либо на отдельной странице входа, либо в составе любой страницы веб-приложения. Пользовательский интерфейс является настраиваемым и при входе пользователя автоматически взаимодействует с Membership API. Элемент управления берет на себя большую часть работы по созданию настраиваемых страниц входа.
Обслуживание информации о пользователях
Все сказанное не касается большинства других типов аутентификации. При Windows-аутентификации за хранение удостоверений пользователя отвечает лежащая в основе операционная система. В Windows реализовано множество приемов для автоматического обеспечения их безопасного хранения, так что выполнять дополнительную работу не придется. При аутентификации Passport удостоверения безопасно хранятся на специальных серверах Passport.
Перехват сетевого трафика
Когда пользователь вводит информацию удостоверения при аутентификации с помощью форм, она пересылается от браузера на сервер в формате простого текста. Это значит, что любой, кто ее перехватит, сможет ее прочитать. Очевидно, что такая ситуация небезопасна.
Обычное решение этой проблемы заключается в применении SSL (как было описано в предыдущей статье). На этом этапе может возникнуть желание использовать SSL для защиты только регистрационной страницы, а не всего приложения. Аутентификацию с помощью форм можно сконфигурировать так, чтобы она шифровала и подписывала cookie-наборы, в результате существенно затрудняя злоумышленнику задачу получения информации от нее. Вдобавок cookie-наборы не должны содержать никакой важной информации, и потому они не включают пароли, введенные при аутентификации.
Почему бы ни реализовать cookie-аутентификацию самостоятельно?
В зависимости от конфигураций, о которых вы узнаете в последующих статьях, аутентификация с помощью форм использует cookie-наборы для выдачи билетов аутентификации клиентам и пользователям. Более общий термин для обозначения такого подхода называется cookie-аутентификацией. Аутентификация с применением cookie-наборов на первый взгляд кажется весьма простой системой. Может возникнуть вопрос: а почему бы ни реализовать ее самостоятельно, применяя cookie-наборы и переменные сеанса?
Cookie-наборы аутентификации являются защищенными.
Обеспечение безопасности cookie-наборов аутентификации
Аутентификация средствами cookie-наборов выглядит простой, но если ее реализовать неправильно, получится незащищенная система. Сами по себе cookie-наборы не являются безопасным местом хранения информации, поскольку злоумышленник может легко просмотреть и отредактировать данные cookie-набора. Если аутентификация основана на незащищенных cookie-наборах, хакер может легко подвергнуть опасности систему.
По умолчанию модуль аутентификации с помощью форм шифрует аутентифицирующую информацию перед помещением ее в cookie-набор. Он также снабжает ее хеш-кодом и проверяет cookie-набор при возврате на сервер, чтобы убедиться, что он не подвергался изменениям. Комбинация этих двух процессов обеспечивает безопасность cookie-наборов и избавляет от необходимости писать собственный код защиты. Большинство примеров доморощенных cookie-аутентификаций гораздо менее безопасны.
Аутентификация с помощью форм тщательно протестирована
Интеграция с платформой безопасности ASP.NET
Все типы аутентификации ASP.NET являются частью общей согласованной платформы. Аутентификация с помощью форм полностью интегрирована с этой платформой безопасности. Например, она наполняет объект контекста безопасности (IPrincipal), как и должна это делать. Это позволяет легко настроить поведение аутентификации с помощью форм по своему усмотрению.
Классы аутентификации с помощью форм
Если билет присутствует, модуль автоматически создает контекст безопасности, инициализируя свойство HttpContext.Current.User экземпляром GenericPrincipal по умолчанию, который включает экземпляр FormsIdentity с именем текущего зарегистрированного пользователя. В основном напрямую работать с этим модулем не придется. Интерфейс для взаимодействия с модулем состоит из классов, перечисленных в таблице ниже, которые определены в пространстве имен System.Web.Security:
Имя класса | Описание |
---|---|
FormsAuthentication |