Вы здесь

Шаблоны проектирования веб-приложений. Глава 3. Аутентификация пользователя (Паван Вора, 2011)

Глава 3

Аутентификация пользователя

Введение

Когда веб-приложение предполагает взаимно однозначное взаимодействие с пользователем и сохранение персональных данных о пользователе, возникает необходимость, чтобы пользователи создавали учетную запись (REGISTRATION) и выбирали уникальные учетные данные для доступа к веб-приложению. При регистрации пользователи в некоторых случаях должны ввести набор буквенно-цифровых символов с искаженного изображения, чтобы предотвратить рассылку спама, а также подтвердить, что они являются людьми, а не компьютерными программами (CAPTCHA, Completely Automated Public Turing test to tell Computers and Humans Apart, – Полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей).

Когда созданы уникальные учетные данные, пользователи могут идентифицироваться (LOG IN) и получить доступ к своей личной информации. После входа в систему и выполнения необходимых заданий пользователям во многих случаях необходимо выйти из приложения таким образом, чтобы неавторизованные пользователи не могли получить доступ и изменить информацию из их учетной записи (LOG OUT). Во многих приложениях предусмотрен автоматический выход из системы, если пользователь какое-то время неактивен (AUTOMATIC LOGOUT).

Поскольку часто приложением пользуются лишь время от времени, пользователи забывают свои учетные данные, и им необходим способ их восстановить. В зависимости от того, какой уровень безопасности предусматривается приложением, пользователям может понадобиться предоставить какую-либо личную информацию. Например, указать адрес электронной почты, на который зарегистрирована эта учетная запись, или ответить на один или несколько контрольных вопросов, составленных во время регистрации (FORGOT USERNAME/PASSWORD).

REGISTRATION (РЕГИСТРАЦИЯ)

Проблема

В веб-приложениях часто необходимо, чтобы идентификационные данные пользователя были уникальны. Это необходимо для того, чтобы предотвратить возможность несанкционированного доступа к личной и конфиденциальной информации (например, к медицинским или финансовым данным), сделать пользование приложением еще удобнее (например, сохраняя информацию об адресе доставки и адресе выставления счета) и предоставить возможность делиться информацией (например, фотографиями). Однако несмотря на все эти преимущества, пользователи часто сомневаются, стоит ли предоставлять личную информацию, и нередко избегают приложений, в которых необходимо создавать учетную запись.

Решение

Отложите регистрацию на самый последний момент и позвольте пользователям изучить приложение, чтобы они в полной мере оценили все преимущества создания учетной записи. Кроме того, если пользователи готовы отказаться от ряда удобств, дайте им возможность совершить операцию, не регистрируясь. На сайте Topix.net значительно увеличилось количество и качество сообщений, когда для того, чтобы оставить сообщение в форуме, сайт перестал требовать от пользователей зарегистрироваться (Blake, 2006). Когда регистрация неизбежна, четко обозначьте преимущества регистрации и узнавайте у пользователей только ту информацию, которая необходима для создания учетной записи (рис. 3.1).

Рис. 3.1. У сервиса Crazy Egg одна из самых простых и коротких регистрационных форм. Для регистрации пользователь должен просто указать свой электронный адрес и пароль, и согласиться с условиями использования и политикой конфиденциальности


Зачем

В большинстве случаев создание учетной записи в приложении не входит в задачи пользователей. Обычно в их задачу входит покупка товара, выкладывание информации, оплата счетов и т. д. Предложение создать учетную запись или зарегистрироваться обычно отвлекает пользователей от их основной задачи и прерывает их взаимодействие с системой. По этой причине регистрацию нужно откладывать на самый последний момент. Этот подход часто практикуется в приложениях для электронной коммерции (например, Amazon, Buy.com), информационных порталах (например, Yahoo! MSN, Morningstar) и приложениях для информационного обмена (например, Flickr, YouTube, SlideShare), где пользователь может изучить контент, не создавая учетную запись. Только когда пользователи хотят совершить покупку, добавить контент, оставить комментарий или изменить внешний вид приложения, эти приложения требуют, чтобы пользователи зарегистрировались. По этой причине поздняя регистрация позволяет пользователям оценить все преимущества приложения и лучше осознать необходимость и достоинства создания учетной записи.

Как

Первое и основное: формы регистрации должны быть настолько короткими, насколько это возможно, и должны запрашивать только необходимую информацию (рис. 3.2). В большинстве случаев к такой информации относится уникальное имя пользователя (или ID пользователя, или электронный адрес) и пароль.

Рис. 3.2. В приложении Wufoo, разработанном для создания различных онлайновых форм, применяется простая форма регистрации, в которой нужно указать только самую необходимую информацию


Поскольку пользователи не видят введенный пароль, попросите их подтвердить пароль путем повторного его введения. Кроме того, если это необходимо с юридической точки зрения, попросите пользователей подтвердить свое согласие с условиями использования.

Когда пользователи должны создать свою учетную запись, важно, чтобы формы были как можно короче, и в них выяснялась только самая необходимая информация, так чтобы пользователи отвлеклись от выполнения своих задач лишь на очень короткий промежуток времени. Узнавая у них информацию, которая не является необходимой, вы увеличиваете время, которое уходит на регистрацию, и вероятность ошибки пользователя. Это может привести к отказу от регистрации или к получению неверных или излишних данных.

Когда вам нужно узнать личную информацию, такую как дата рождения, пол, раса и т. д., четко объясняйте, для чего эта информация необходима, и как она будет использоваться (рис. 3.3).

Рис. 3.3. На сайте Papa John в регистрационной форме объясняется, почему пользователи должны указать свой возраст: потому что им должно быть больше 13 лет для того, чтобы они могли сделать заказ


Попробуйте использовать электронный адрес в качестве имени пользователя

Во время регистрации пользователям часто приходится придумывать уникальный идентификатор для своей учетной записи, такой как имя пользователя или электронный адрес. Электронные адреса часто оказываются более удачным вариантом, поскольку они всегда уникальны, и их легче запомнить, даже если у пользователей несколько электронных адресов. Кроме того, когда пользователю нужно напомнить его регистрационные данные, проще отправить напоминание на его зарегистрированный электронный адрес (см. шаблон FORGOT USERNAME/ PASSWORD далее в этой главе).

Применяйте полностью автоматизированный публичный тест (CAPTCHA), чтобы зарегистрироваться мог только человек

В Интернете настолько много программ-пауков, что уже сложно отличить их от пользователей-людей. Включите автоматизированный тест в форму регистрации и сократите количество регистраций, произведенных подобными программами (рис. 3.4).

Рис. 3.4. Для регистрации на сервисе Nabble пользователи должны пройти автоматизированный CAPTCHA-тест


Автоматизированный тест CAPTCHA требует от пользователей, чтобы они ввели в специально отведенное поле символы с искаженного изображения, которое содержит буквы и/или числа. Способность верно определить символы искаженного изображения выступает в качестве доказательства того, что форму заполняет человек, а не программа (см. далее шаблон CAPTCHA).

Хотя тест CAPTCHA применяется все чаще, пользователям приходится прикладывать дополнительные усилия на то, чтобы ввести эту информацию. Калбуччи (Calbucci, 2008) обнаружил, что когда на сайте Sampa (www.sampa.com) убрали тест CAPTCHA при регистрации, количество зарегистрировавшихся увеличилось на 9,2 %.

Попробуйте применить «ленивую» регистрацию

Как уже отмечалось, регистрация часто отвлекает пользователя от выполнения основной задачи. По этой причине старайтесь откладывать регистрацию на самый последний момент, чтобы пользователи могли изучить приложение, прежде чем им предложат зарегистрироваться. Например, на сайте Morningstar пользователям предлагается зарегистрироваться или войти в свою учетную запись только тогда, когда они доходят до страницы, на которой им необходимо указать личную информацию (например, при создании инвестиционного портфеля).

Чтобы процесс регистрации был максимально эффективным, даже когда он отложен на потом, можно воспользоваться подходом «ленивой» регистрации, т. е. собирать информацию о пользователе из файлов cookie его браузера во время работы с приложением. Как утверждает Махемофф (Mahemoff, 2006):

«Когда пользователь взаимодействует с приложением, в его учетной записи сохраняется определенная информация. Некоторые данные вносит сам пользователь, рекомендуется указывать подобную информацию так, чтобы пользователь мог ее внести самостоятельно. Таким образом, исходный профиль можно рассматривать как структуру с множеством дыр. Некоторые из этих дыр постепенно восполняются автоматически, а другие восполняет сам пользователь».

Благодаря такому способу сбора информации, к тому моменту, как пользователь должен будет заполнить регистрационную форму, некоторые ее поля могут быть заранее заполнены за него, и пользователю нужно будет только подтвердить эти данные, а не вводить их. Например, если пользователь собирается подписаться на новостную рассылку, у приложения уже будет адрес его электронной почты, и эту информацию пользователю не придется вносить заново.

Попробуйте обойтись без регистрации

Предоставьте пользователям возможность пользоваться приложением без регистрации в тех случаях, когда просто хотят быстро выполнить ту или иную операцию. Такой подход часто встречается в приложениях для электронной коммерции, особенно в тех случаях, когда пользователи просто покупают подарок кому-либо и больше приложением не пользуются (рис. 3.5). Пользователям можно предложить зарегистрироваться на финальных этапах транзакции (или при оформлении покупки и оплате заказа), перечислив все преимущества регистрации (например, возможность отслеживать выполнение заказа).

Рис. 3.5. На сайте Office Depot пользователи могут совершить покупку без регистрации. Также пользователям сообщается, что они смогут создать учетную запись во время оплаты


Четко обозначьте преимущества регистрации

Если невозможно отложить регистрацию в приложении, четко обозначьте все преимущества регистрации (рис. 3.6).

Рис. 3.6. На сайте сервиса Netflix не просто перечислены преимущества регистрации, но также на этой же самой странице объяснено, как сервис функционирует. Пользователи могут пройти по специальной ссылке и подробнее ознакомиться с тем, как выбирать фильмы, или с предложением воспользоваться бесплатным тестовым периодом; более того, на сайте Netflix указан номер телефона, по которому можно позвонить, если возникли вопросы


Во многих приложениях недостаточно просто перечислить преимущества, особенно если регистрация платная. В подобных случаях предложите пользователям демонстрационный тур, в котором будут объясняться все достоинства приложения, и/или позвольте им создать бесплатную пробную учетную запись на ограниченный период времени или с ограниченным функционалом (рис. 3.7).

Рис. 3.7. Сервис Basecamp (от 37Signals) предлагает пользователям тур по приложению, чтобы они смогли оценить его функционал и преимущества. Пользователи могут создать бесплатную пробную учетную запись, чтобы получить возможность самостоятельно изучить приложение. Хотя при бесплатной регистрации пользователь лишен ряда возможностей, ему проще увидеть все преимущества регистрации


Попробуйте предоставить пользователям возможность воспользоваться системами «унифицированной идентификации»

Пользователю может быть сложно запомнить регистрационную информацию для одного или более приложений, что может привести к проблемам с безопасностью (например, хранение информации в письменном виде или использование очень простых паролей). Даже когда безопасность не так важна, забытые регистрационные данные могут привести к ненужным задержкам в выполнении заданий. По этой причине, по возможности, предоставляйте пользователям возможность регистрироваться с помощью сервисов «унифицированной идентификации», например OpenID или Windows CardSpace.

OpenID – это открытый стандарт, который позволяет пользователям создавать и применять пару имя пользователя и пароль для входа в любое веб-приложение, поддерживающее OpenID; для получения более подробной информации зайдите на сайт www.openid.net. Таким образом, разрешив поддержку OpenID, вы либо устраните необходимость регистрации либо по крайней мере сократите количество данных, которые должен предоставить пользователь для создания учетной записи (рис. 3.8). Поскольку не все пользователи зарегистрированы в OpenID, обеспечивать нормальный процесс регистрации все равно необходимо.

Рис. 3.8. На сайте Ma.gnolia пользователи могут пройти стандартную регистрацию и выбрать себе имя пользователя и пароль, а также воспользоваться системой OpenID


Подтверждайте регистрацию

При необходимости требуйте от пользователей подтверждения регистрации, чтобы препятствовать мошенничеству. Обычно для этого на указанный во время регистрации электронный адрес отправляется письмо, содержащее ссылку для подтверждения. Только после того как пользователи проходят по этой ссылке (или вставляют регистрационный URL-адрес в адресную строку браузера), их регистрация считается завершенной. Чтобы письмо случайно не потерялось, предлагайте пользователям проверить папку со спамом (рис. 3.9).

Рис. 3.9. На сайте YouTube пользователи для подтверждения регистрации должны пройти по ссылке из присланного им электронного письма. На сайте указывается, что если в течение нескольких минут после регистрации пользователь не получил электронное письмо, то необходимо проверить папку для спама


Развейте сомнения пользователей по поводу конфиденциальности

Пользователи могут сомневаться, стоит ли им регистрироваться, потому что им неизвестно, как будет использована их личная информация. Чтобы развеять подобные сомнения, напишите несколько слов по поводу конфиденциальности (например, «Ваша информация не будет продана или разглашена») и сразу за этим разместите ссылку на подробную политику конфиденциальности (рис. 3.10).

Рис. 3.10. В регистрационной форме сайта Prosper кратко описана политика конфиденциальности, а также указана ссылка на более подробную информацию о политике конфиденциальности


Для сохранения персональных данных устанавливайте контрольные вопросы

В веб-приложениях с повышенным уровнем безопасности (например, в приложениях, связанных с финансами) используйте контрольные вопросы (рис. 3.11). Впоследствии с помощью контрольных вопросов можно идентифицировать пользователей, забывших свою регистрационную информацию (см. далее в этой главе шаблон FORGOT USERNAME/PASSWORD).

Рис. 3.11. При создании учетной записи на сайте CapitalOne пользователь должен указать контрольный вопрос


Согласие

Убедите пользователей согласиться получать рассылку от компании, которой принадлежит данное приложение (рис. 3.12).

Рис. 3.12. На сайте Evite пользователям четко предлагается получать рассылку с информацией о вечеринках и идеях для отдыха


Это первый шаг на пути к тому, чтобы отправленное пользователю электронное сообщение отвечало требованиям закона CAN-SPAM[5]. Лучший способ это сделать – дважды разместить предложение, и если пользователь соглашается, ему приходит письмо, содержащее ссылку для подтверждения, по которой он должен пройти, чтобы подтвердить свое согласие.

Кроме того, пользователи должны быть осведомлены о том, насколько часто они будут получать рассылку и какие сообщения будут им приходить.

Существует вероятность, что подобные письма будут приходить в папку для спама, поэтому попросите пользователей соответствующим образом настроить фильтр спама или добавить адрес, с которого приходит рассылка, в свой список контактов.

Возвращайте пользователей обратно к тому шагу, на котором их прервали

По завершении регистрации возвращайте пользователей на ту страницу, на которой они находились, когда решили зарегистрироваться, или на ту, где запрашивается регистрация. Например, в приложениях для электронной коммерции, если пользователям предлагается зарегистрироваться во время процесса оформления заказа, верните их на страницу, на которой они смогут увидеть, зарегистрировались они или нет: например, на страницу с информацией о доставке.

Связанные шаблоны проектирования

Во многих веб-приложениях регистрация – это первая форма, с которой сталкиваются пользователи. Чтобы взаимодействие пользователя с приложением было успешным, важно придерживаться шаблонов, описанных в главе 2 – CLEAR BENEFITS, SHORT FORMS, REQUIRED FIELD INDICATORS и ERROR MESSAGES. Когда пользователи видят регистрационную форму, важно, чтобы у них была возможность войти в систему (LOG IN), поскольку они могли зарегистрироваться ранее. Кроме того, поскольку процесс регистрации нередко сопровождается тестом CAPTCHA, придерживайтесь рекомендаций из следующего шаблона.

CAPTCHA (ПОЛНОСТЬЮ АВТОМАТИЗИРОВАННЫЙ ПУБЛИЧНЫЙ ТЕСТ)

Проблема

Приложение должно удостовериться, что действие (например, регистрация, отзыв, комментарий и т. д.) совершено человеком, а не программой, чтобы предотвратить создание ложных учетных записей и поддельных откликов.

Решение

Попросите пользователя напечатать символы с искаженного изображения, содержащего буквы и/или цифры, прежде чем он зарегистрируется или оставит комментарий или отзыв (рис. 3.13).

Рис. 3.13. Тест CAPTCHA на странице регистрации Yahoo!


Распознавание искаженного изображения выступает в качестве подтверждения того, что пользователь – это человек, а не машина, поскольку автоматически распознать искаженное изображение компьютерной программе довольно сложно. Этот метод называется тест CAPTCHA (от англ. Completely Automated Public Turing test to tell Computers and Humans Apart – Полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей (von Ahn, Blum, and Langford, 2004)[6].

Зачем

В Интернете настолько много программ-пауков, что уже сложно отличить их от пользователей-людей. С тестом CAPTCHA люди справляются относительно легко, а программе-пауку пройти этот тест довольно сложно, благодаря этому ботам и паукам трудно, если вообще возможно, осуществлять взаимодействие с приложением и отправлять формы.

Как

Изображения CAPTCHA обычно состоят из четырех-пяти искаженных буквенно-цифровых символов; буквы на изображении могут быть как заглавными, так и строчными. Кроме того, на изображении могут присутствовать линии, несколько искаженных слов, отвлекающий фон и т. д. (рис. 3.14). Пользователей перед отправкой формы просят распознать изображение и ввести символы в правильном порядке (регистр может учитываться, а может и не учитываться). При отправке формы ответ проверяется, и пользователи либо переходят к следующему этапу, либо получают сообщение об ошибке.

Рис. 3.14. Примеры изображений CAPTCHA


Относительно недавно некоторые сайты стали использовать в тесте CAPTCHA простые математические задачи, такие как 2+4 или 4x2, которые пользователи должны решить (рис. 3.15).

Рис. 3.15. Два примера использования математических задач в качестве теста CAPTCHA


Позволяйте пользователям менять изображение CAPTCHA

Некоторые изображения CAPTCHA могут показаться пользователям слишком искаженными, чтобы можно было распознать определенные символы (например, цифру 1 можно перепутать со строчной буквой l, а цифру 9 – со строчной g). По этой причине у пользователей должна быть возможность изменить изображение CAPTCHA, щелкнув мышью по ссылке «обновить» или «изменить» (рис. 3.16).

Рис. 3.16. Сервис Nabble предоставляет пользователям возможность изменить изображение CAPTCHA


Предлагайте возможность пройти звуковой тест CAPTCHA

Поскольку тест CAPTCHA основывается на расшифровке изображения, он предоставляет очевидную сложность для слепых пользователей и для пользователей с нарушенным зрением. У них должна быть возможность пройти звуковой тест CAPTCHA – аудиоверсию стандартного теста CAPTCHA, которая позволит им осуществлять взаимодействие с приложением (рис. 3.17).

Рис. 3.17. На сервисе Gmail пользователям предлагается и визуальный, и звуковой тест CAPTCHA


Связанные шаблоны проектирования

Тесты CAPTCHA часто применяются во время регистрации, поскольку большинство приложений пытаются избежать регистрации, произведенной программами-пауками (REGISTRATION). Также этот тест часто применяется в форумах и блогах, где пользователи могут оставлять комментарии или участвовать в жизни сообщества (см шаблон GROUPS/SPECIAL INTEREST COMMUNITY в главе 9).

LOG IN (ВХОД В СИСТЕМУ)

Проблема

Пользователям необходимо идентифицироваться для того, чтобы они могли получить доступ к информации в своей учетной записи и/или увидеть адаптированную или персонализированную версию веб-приложения. Например, пользователям нужно проверить свою почту (Hotmail, Yahoo! Mail), зайти в свою учетную запись в приложении для электронной коммерции (Amazon, Dell) и посмотреть статус заказа или увидеть адаптированную версию информационного портала (My Yahoo! iGoogle).

Решение

Попросите пользователей идентифицироваться с помощью своих уникальных идентификаторов (например, имя пользователя или электронный адрес) и пароля, который они либо сами выбрали при регистрации, либо получили от системного администратора. Для получения доступа к веб-приложению также могут применяться системы унифицированной идентификации, такие как OpenID или Windows CardSpace (рис. 3.18). Кроме того, чтобы упростить доступ к приложению, попробуйте предложить пользователям, чтобы приложение запомнило их регистрационную информацию.

(а)


(б)


Рис. 3.18. Сервис Basecamp позволяет пользователям войти в систему с помощью того имени пользователя и пароля, которые они выбрали во время регистрации (a), или с помощью OpenID (б). Пользователи также могут согласиться, чтобы приложение запомнило их данные для входа


Зачем

Если веб-приложение предоставляет пользователям доступ к их личной информации, очень важно, чтобы пользователи проходили идентификацию при входе, используя для этого уникальный набор регистрационных данных, созданный во время регистрации в приложении. Хотя процесс входа в систему очень важен для обеспечения сохранности информации и предотвращения несанкционированного доступа, пользователям он может показаться преградой на пути выполнения их задач. Кроме того, если пользователь редко заходит в какое-либо приложение, он может забыть свои регистрационные данные и может быть заблокирован на определенный промежуток времени. По этой причине по возможности пользователям нужно предлагать, чтобы приложение запомнило их реквизиты для входа в систему. Опция «запомнить меня» избавляет пользователей от необходимости проходить идентификацию и помогает им выполнить свои задачи, не отвлекаясь.

Как

Требуйте, чтобы пользователи входили в систему под тем именем и паролем, которые они выбрали во время регистрации. Однако, как и регистрация, необходимость идентифицироваться отвлекает пользователей от взаимодействия с приложением. По этой причине откладывайте идентификацию на последний момент. Когда идентификацию нельзя отложить по коммерческим причинам – например, пользователь должен идентифицироваться, чтобы оформить доставку из ближайшего к нему магазина – продумайте альтернативные варианты, которые помогали бы пользователю в достижении его целей – например, просите его указать свой адрес и/или почтовый индекс.

Пароль должен выводиться на экран в зашифрованном виде

Для поля ввода пароля применяйте HTML-тег <input type="password" />. В этом случае веб-браузер будет выводить пароль на экран в виде звездочек или точек. Однако поскольку пользователь не может увидеть, что он ввел, в случае ошибки идентификации удаляйте введенные пользователем символы из поля для пароля. Кроме того, в том случае, если регистр имеет значение, просите пользователя проверить, не нажата ли клавиша Caps Lock.

В случае необходимости предлагайте безопасную идентификацию

Предоставляя пользователям доступ к личной информации, которая конфиденциальна по своей природе, обезопасьте процесс идентификации с помощью передачи информации по протоколу SSL (от англ. Secure Sockets Layer – уровень защищенных сокетов). Также сообщите пользователям, что они входят в систему с помощью безопасного протокола (рис. 3.19). Так пользователи будут больше доверять веб-приложению.

Рис. 3.19. На сайте Amazon пользователям сообщается, что они входят в систему через защищенный сервер


Предлагайте пользователям возможность зарегистрироваться

Обычно разработчики стремятся сделать приложение как можно удобнее для постоянных пользователей и предлагают пользователям только войти в систему. Однако пользователи могут быть еще не зарегистрированы, поэтому важно, чтобы им предлагалась также возможность зарегистрироваться (рис. 3.20).

Рис. 3.20. Сайт Target предлагает пользователям возможность зарегистрироваться на странице идентификации (т. е. входа)


Предоставьте пользователям возможность восстановить забытые регистрационные данные

Пользователи часто забывают свои реквизиты для входа в систему, особенно в тех случаях, когда они редко пользуются приложением. Помогите пользователям восстановить забытые регистрационные данные, предоставив им возможность воспользоваться опцией «Забыли пароль?» и/или «Забыли имя пользователя или пароль?» (рис. 3.21); см. шаблон FORGOT USERNAME/PASSWORD далее в этой главе.

Рис. 3.21. На сайте Yahoo! под кнопкой «Войти» («Sign in») расположена ссылка «Забыли имя пользователя или пароль?» («Forget your ID or password?»), а новым пользователям предлагается зарегистрироваться, пройдя по ссылке «Регистрация»(«Sign up»)


Для повышения уровня безопасности продумайте двухступенчатую систему идентификации

Из соображений безопасности во многих приложениях, связанных с финансами, идентификация пользователя проходит в два этапа. Первый шаг очень напоминает уже описанный процесс входа в систему – т. е. пользователям предлагается ввести имя или ID пользователя и пароль.

Второй шаг заключается в том, что пользователи должны ответить на контрольный вопрос. Ответ должен соответствовать тому, который пользователь указал во время регистрации, тогда идентификация считается успешно пройденной и пользователь получает доступ к своей учетной записи (рис. 3.22).

(а)


(б)


Рис. 3.22. На сайте компании Advanta пользователей после входа в систему просят подтвердить свою идентичность (a), задавая им один из контрольных вопросов, которые они создали во время регистрации (б). Им также предоставляется возможность зарегистрировать компьютер, с которого они заходят на сайт, и в будущем избежать дополнительного этапа идентификации


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

Единый вход (единая идентификация)

Многие веб-приложения, особенно межкорпоративные (экстрасеть) и корпоративные (интрасеть), позволяют пользователям получать доступ к одному или нескольким связанным между собой приложениям. Такие дополнительные приложения должны поддерживать технологию единого входа (ее часто называют SSO), так чтобы пользователи могли входить в систему, используя те же регистрационные данные, которые они используют для идентификации в других приложениях. Пользователи должны беспрепятственно перемещаться между приложениями, и у них должно создаваться впечатление, как будто они пользуются одним и тем же приложением. Например, если пользователь вошел в свою учетную запись в Google Mail, он не должен снова проходить идентификацию для того, чтобы получить доступ к дополнительным приложениям, таким как Google Calendar и Google Documents.

Попробуйте предоставить пользователям возможность пользоваться системами «универсальной идентификации»

Как упоминалось ранее, предоставьте пользователям возможность пользоваться системами «универсальной идентификации», такими как OpenID и Windows CardSpace (рис. 3.23). Такие системы позволяют пользователям создать уникальный цифровой идентификатор и использовать его для идентификации в любом приложении, которое поддерживает эти системы. Это напоминает технологию единого входа, с тем лишь исключением, что регистрационные данные пользователя находятся в распоряжении провайдера идентификации, который, в отличие от провайдера самого веб-приложения, является посредником.

(а)


(б)


Рис. 3.23. На сайте IconBuffet пользователи могут пройти как стандартную идентификацию (a), так и с помощью системы OpenID (б)


Сохраняйте данные для входа в систему

Как и регистрация, процесс идентификации часто отвлекает пользователей от выполнения их основных задач и целей. Чтобы свести к минимуму это неудобство, предоставьте пользователям возможность согласиться, чтобы приложение сохранило их данные для входа на их компьютерах. В зависимости от уровня безопасности и политики конфиденциальности, подобную опцию можно реализовать одним и двух способов.

1. Запомнить и имя пользователя, и пароль (рис. 3.24). Так полностью устраняется необходимость проходить идентификацию, если пользователь входит в систему с того же самого компьютера. Поскольку файлы cookies, необходимые для того, чтобы запомнить регистрационные данные, хранятся на компьютере, с которого пользователь выходит в систему, пользователю не нужно проходить идентификацию, если он использует тот же компьютер, до тех пор, пока файлы cookie не истекут или не будут удалены. Из соображений безопасности можно задать такие настройки, что срок действия функции «запомнить меня» будет истекать через определенный промежуток времени, например, две недели или 30 дней.

Рис. 3.24. Gmail предлагает пользователям возможность запомнить их регистрационные данные


2. Запомнить только имя пользователя (рис. 3.25). В этом случае пользователю все же придется вводить пароль при входе в систему, однако не нужно вводить имя пользователя. Приложения для электронной коммерции (например, Amazon) обычно применяют именно этот подход, и пользователям для совершения покупки нужно ввести пароль.

Рис. 3.25. На сайте компании Dominos пользователю предлагается сохранить на своем компьютере свое имя пользователя


Когда крайне необходимо обеспечить безопасность пользовательской информации, как в случае с приложениями, занимающимися финансами (например, Fidelity, CitiCards), допускается пожертвовать удобством пользователей ради того, чтобы предотвратить несанкционированный доступ к учетной записи. В этом случае можно не предлагать воспользоваться опцией «запомнить меня».

Подтверждайте идентификацию

Пользователи должны получить четкое подтверждение того, что они успешно идентифицированы. Для этого можно отображать сообщение, такое как «Добро пожаловать, имя пользователя», или просто отображать имя пользователя (обычно в верхнем правом углу страницы; рис. 3.26). Это особенно важно в тех случаях, когда пользователи выразили согласие, чтобы приложение запомнило их на данном компьютере.

Рис. 3.26. Gmail отображает электронный адрес пользователя и ссылку Sign out (Выйти) в верхнем правом углу страницы, чтобы обозначить, что пользователь успешно вошел в систему


Блокирование учетной записи

Когда крайне важна безопасность (например, в случае с приложениями, связанными с финансами), весьма разумно в качестве меры предосторожности блокировать учетную запись пользователя после определенного числа неудачных попыток идентификации. Сразу после первой неудачной попытки пользователям нужно сообщить о том, что их учетная запись может быть заблокирована (рис. 3.27). Если учетная запись заблокирована, пользователю нужно сообщить или номер телефона, по которому он должен позвонить, или что он должен предпринять для разблокирования своей учетной записи.

Рис. 3.27. На сайте банка Washington Mutual указывается, что учетная запись будет блокирована после четырех неудачных попыток войти в систему


Связанные шаблоны проектирования

Когда пользователей просят пройти идентификацию, часто оказывается, что они забыли свои регистрационные данные (FORGOT USERNAME/PASSWORD). Кроме того, если пользователь еще не создал учетную запись, ему нужно предложить это сделать (REGISTRATION).

Шаблон LOG IN почти всегда сопровождается шаблоном LOG OUT, чтобы пользователи могли сознательно завершить сессию работы с приложением.

LOG OUT (ВЫХОД ИЗ СИСТЕМЫ)

Проблема

После входа в систему и выполнения необходимых задач пользователь может захотеть завершить сессию работы с веб-приложением. Это может произойти по ряду причин, чтобы:

• предотвратить несанкционированный доступ к его личной информации;

• выйти из одной учетной записи и зайти под другим именем;

• обозначить, что он выполнил все свои задачи и ему больше не нужен доступ к приложению.

Решение

Предоставьте пользователям возможность завершить сессию путем выхода из системы (рис. 3.28).

Рис. 3.28. Сервис CitiCards предлагает ссылку Log Out (Выход), чтобы пользователи могли завершить сессию


Зачем

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

Как

Предоставьте пользователям возможность завершить сеанс. Обычно ссылка «выйти из системы» располагается в верхнем правом углу страницы или рядом с именем пользователя. В некоторых веб-приложениях, где реквизиты для входа сохраняются от посещения к посещению (в первую очередь это относится к приложениям для электронной коммерции), пользователям не предлагается выйти из системы. Вместо этого они могут войти в приложение под другим именем, воспользовавшись для этого такой ссылкой, как «Вы не имя пользователя?». В таких приложениях пользователя приветствуют фразой: «Добро пожаловать, имя пользователя », чтобы обозначить, что пользователь идентифицирован (рис. 3.29). Если вы не предлагаете пользователям возможность выхода из системы, убедитесь, что для совершения каких-либо операций с деньгами (например, оплата покупки) или внесения изменений в учетные данные (например, смена пароля) пользователям необходимо войти в систему под своим именем.

Рис. 3.29. На сайте Buy.com пользователь может пойти по ссылке Not имя пользователя? Click here (Вы не имя пользователя ? Щелкните здесь), чтобы выйти из одной учетной записи и зайти под другим именем


Последовательно используйте метки

Хотя это не сильно влияет на простоту и удобство использования приложения, стоит обратить внимание на согласованность меток. Чаще всего завершающее пользовательский сеанс действие маркируется как «выход», «выйти», «завершение работы», «завершить работу». Поскольку метка маркирует действие, логичнее всего использовать метки «выйти» и «завершить работу».

Хотя эффективность такого подхода научно не подтверждена, обычно метка завершения работы последовательно дополняет метку начала работы: основная часть потребительских приложений использует метку «Выйти» (дополняющую метку «Войти»), а во многих бизнес и технических приложениях используются метки «Завершить работу» и «Начать работу».

Подтверждайте выход из системы

Информируйте пользователей о том, что они вышли из системы. Подтверждение может быть представлено в виде:

• Специальной страницы «Вы вышли из системы», на которой пользователи могут выбрать, куда им перейти дальше.

• Страницы входа, на которой будет отображаться соответствующее сообщение о том, что пользователь вышел из системы.

• Версии страницы для неавторизованных пользователей (это типично для информационных порталов, таких как Yahoo! MSN, iGoogle и т. д.).

• Сочетания этих вариантов – например, специальная страница, автоматически перенаправляющая пользователя на другую страницу через определенный промежуток времени (рис. 3.30).

(а)


(б)


Рис. 3.30. Специальная страница портала Yahoo! на которой пользователю сообщается, что он вышел из системы (a). Спустя короткий промежуток времени, пользователи перенаправляются на версию страницы для неавторизованных посетителей (б)


Выбор варианта зависит от того, каковы исходные условия входа в учетную запись. Если пользователь должен авторизоваться для того, чтобы получить доступ к приложению, то, когда пользователь завершает сеанс работы, возвращайте его на страницу входа, отображающую сообщение о том, что сеанс завершен. Обычно в этом случае от пользователя не требуется подтверждение, за исключением тех случаев, когда он может потерять данные. Также пользователь сможет авторизоваться снова, если он завершил сеанс случайно. В ином случае, если пользователи перед авторизацией находятся на странице для неавторизованных посетителей, после завершения работы с приложением верните их на эту же страницу.

Связанные шаблоны проектирования

Шаблон LOG OUT дополняет шаблон LOG IN, поскольку если для доступа к приложению пользователь должен войти в систему, обычно ему также предоставляется возможность выйти из системы.

AUTOMATIC LOGOUT (АВТОМАТИЧЕСКИЙ ВЫХОД)

Проблема

Если после авторизации пользователь не взаимодействует с приложением дольше, чем ожидается, это может означать, что либо он отвлекся на что-то, либо прекратил работу с приложением, но забыл из него выйти. Если оставить учетную запись в таком состоянии, возникает опасность несанкционированного доступа к конфиденциальной информации пользователя.

Решение

Если пользователь неактивен определенный промежуток времени (например, 15–45 минут), завершайте его сеанс работы выходом из системы (рис. 3.31).

Рис. 3.31. На сайте банка Washington Mutual пользовательская сессия автоматически прекращается, если пользователь неактивен 15 минут. Также пользователю предлагается ссылка для повторной авторизации, чтобы ему проще было начать новую сессию


Зачем

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

Автоматический выход из системы особенно важен, если браузер пользователя позволяет просматривать страницы с использованием вкладок. Многие пользователи открывают несколько вкладок и заходят в несколько веб-приложений, при этом часто забывая выходить из системы.

Как

В приложениях, где очень важна безопасность и/или конфиденциальность информации, автоматически завершайте пользовательскую сессию, если пользователь определенное время неактивен (т. е. установите лимит времени сеанса). Обычно лимит времени сеанса составляет от 15 до 45 минут, в зависимости от степени конфиденциальности информации, которая может оказаться незащищенной. Когда лимит времени сеанса заканчивается, предупредите об этом пользователей и предоставьте им возможность оставаться в системе. Такое подтверждение особенно необходимо в тех ситуациях, когда пользователю нужно какое-то время, чтобы выполнить задание (например, в случае с многошаговыми задачами, такими как оформление покупки) и возможная потеря данных может оказаться очень неприятной для пользователя (рис. 3.32).

Рис. 3.32. На сайте Bellco, когда лимит времени сеанса заканчивается, пользователи получают предупреждение, а также возможность продолжить текущую сессию. Также пользователи информируются о том, как можно изменить время ожидания


Когда превышается лимит времени сеанса, довольно часто происходит следующее:

• Пользователи направляются на страницу входа и получают сообщение, что их сессия истекла (или прервана), и они должны заново войти в систему и начать новую сессию. Этот подход уместен, когда на экране отображается конфиденциальная информация.

• Пользователи остаются на той же странице, при этом появляется всплывающее окно с сообщением о том, что сессия была прервана, а также с информацией о том, были ли сохранены данные пользователя (хотя бы как «черновик»). Этот подход не рекомендуется, если на экране (за всплывающим окном) отображается личная и/или конфиденциальная информация.

В некоторых приложениях сессия может завершаться, когда пользователь закрывает окно браузера, в котором открыто приложение.

Сохраняйте информацию пользователя

При автоматическом завершении сеанса старайтесь сохранять введенную информацию. Пользователям может действовать на нервы, если при прерывании сессии исчезают все данные, в то время как они собирались завершить начатое, но по какой-либо причине на время отвлеклись. Например, в сервисе Gmail незавершенные письма пользователя сохраняются как «черновики».

Предоставьте пользователям возможность менять лимит времени сеанса

Пользователю может понадобиться, чтобы лимит времени сеанса определенного веб-приложения был длиннее или короче, чем задано по умолчанию. Это характерно для тех приложений, которыми пользователь может пользоваться весь день, например, электронная почта, офисные приложения (для обработки текстов, электронных таблиц) и приложения для мониторинга статуса (например, отслеживание инвестиций). Если для таких приложений установлены лимиты времени сеансов, предоставьте пользователям возможность их изменить (рис. 3.33).

Рис. 3.33. В приложении Rally Community Edition пользователи могут устанавливать продолжительность времени сеанса вплоть до четырех часов. По умолчанию лимит времени сеанса составляет один час


Связанные шаблоны проектирования

AUTOMATIC LOGOUT – это аварийная мера на тот случай, когда пользователь забывает выйти из системы, и это угрожает конфиденциальности его личной информации. Возможно, пользователям неизвестно, как выйти из системы, поскольку соответствующая опция скрыта или расположена не там, где ее ожидает увидеть пользователь (LOG OUT).

FORGOT USERNAME/PASSWORD (ЗАБЫТЫ ИМЯ ПОЛЬЗОВАТЕЛЯ/ПАРОЛЬ)

Проблема

Пользователь часто забывают данные для входа в систему (логин и/или пароль), без которых не могут войти в приложение.

Решение

Предоставьте пользователям возможность вспомнить или восстановить забытые данные для входа (рис. 3.34).

Рис. 3.34. Сервис Gmail предлагает ссылку I cannot access my account (Я не могу получить доступ к аккаунту)


Зачем

Пользователи часто забывают свой логин и/или пароль, особенно когда они пытаются войти в приложение, которое редко используют. По этой причине важно, чтобы у пользователей был способ запомнить эти данные или восстановить их. Поскольку часто пользователи понимают, что забыли свои реквизиты для входа только тогда, когда их просят войти в систему под своим именем, ссылка восстановления должна располагаться рядом со ссылкой входа в систему. В тех ситуациях, когда учетная запись не содержит частной или конфиденциальной информации, допускается по электронной почте прислать пользователю ссылку для смены пароля. Однако когда дело касается конфиденциальной информации, необходимо предпринять дополнительные шаги для подтверждения идентичности пользователя, прежде чем предоставить ему доступ к реквизитам для входа в систему.

Как

Рядом со входом в систему разместите ссылку «Забыли свой ID (или пароль)» (рис. 3.35); если в качестве логина используется электронный адрес пользователя, достаточно ссылки «Забыли пароль».

Рис. 3.35. Сайт корпорации Capital One. Под кнопкой Log In (Вход) расположены ссылки Forgot your user ID (Забыли свой ID) и Forgot your password (Забыли свой пароль)


Отправляйте пароль на электронный адрес, указанный при регистрации

Если веб-приложение не хранит личную информацию пользователя, которую можно использовать в мошеннических целях (например, информацию о состоянии здоровья или о финансовом состоянии), попросите пользователя указать логин или электронный адрес, указанный им при регистрации. Если эти данные верны, можно отправить пользователю пароль по электронной почте. Для того чтобы повысить уровень безопасности, можно отправить не текущий пароль, а временный, который пользователь сможет поменять, как только войдет в систему. В качестве альтернативного варианта пользователю можно отправить ссылку для смены пароля (рис. 3.36).

(а)


(б)


Рис. 3.36. Сайт Agile Commons после подтверждения электронного адреса отправляет на него ссылку для смены пароля (a). Пройдя по ссылке, пользователь попадает на страницу смены пароля (б)


Подтвердите идентичность пользователя с помощью контрольных вопросов

Если в веб-приложении хранится конфиденциальная информация, то для подтверждения идентичности пользователя, утверждающего, что он забыл свои реквизиты для входа, могут понадобиться дополнительные меры безопасности. К дополнительным контрольным вопросам могут относиться вопросы, ответы на которые может знать только владелец учетной записи, например, номер паспорта, номер счета и т. д. (рис. 3.37). Для идентификации пользователю также может потребоваться ответить на один или несколько контрольных вопросов, указанных во время регистрации.

Рис. 3.37. На сайте компании Advanta, занимающейся выпуском кредитных карт, прежде чем сменить ID пользователя и его пароль, пользователю задают несколько вопросов для идентификации


Связанные шаблоны проектирования

Когда пользователю предлагают войти в систему, он может понять, что забыл свой логин и/или пароль. По этой причине рядом с полями, запрашивающими регистрационные данные (LOG IN), необходимо поместить ссылку для их восстановления.