Visual Basic, .NET, ASP, VBScript
 

   
 

Образование: - в 1996 г. окончил МГУ им. М.В.Ломоносова, факультет вычислительной математики и кибернетики
Общий стаж работы: - с 1994 г.
Стаж работы в IT-индустрии: - с 1994 г.

Предыдущие места работы, должности:
1994-1996 - НПП "Гарант-Сервис", программист;
1996-1998 - ЗАО "Гарант-Парк", системный аналитик;
1998-1999 - ЗАО "Гарант-Парк", руководитель отдела программирования;
1999-2000 - ООО "Гарант-Парк-Интернет", руководитель отдела программирования.

 
     
   
 

Заостровцев Николай Metric


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

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

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

Наличие разных схем регистрации приводит к хаосу с паролями. Пользователь не может использовать ни единое имя, ни единый пароль для доступа к разным ресурсам. Приходя на очередной ресурс, мы уже часто не можем вспомнить, как же мы здесь регистрировались. Приходится проходить процедуру восстановления пароля. Хорошо, если она есть и работает корректно J. Пример из собственной жизни. Во время поездки за рубеж, возникла необходимость отправить почту. Вроде бы никаких проблем, Интернет-кафе есть практически везде. Захожу на сервер бесплатной почты, которой пользуюсь от случая к случаю и понимаю, что пароль, естественно, забыл. Процедура восстановления пароля отработала великолепно – она выслала пароль на указанный в регистрационных данных адрес корпоративной почты. А корпоративная почта в этот момент была мне недоступна. В результате я просто не смог воспользоваться сервисом. Пришлось регистрироваться в другой системе бесплатной почты. А если бы это был более критичный сервис?

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

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

Microsoft Passport

Общее описание

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

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

Служба имеет три составляющие:

  • Единый вход (Single Sign In) – позволяет использовать единые имя и пароль для входа на сервера, поддерживающие службу
  • Экспресс-покупка (Express Purchase) – позволяет производить покупки с помощью сведений, хранящихся в цифровом бумажнике
  • Детский паспорт (Kids Passport) – позволяет контролировать, кому и какие данные о ваших детях будут доступны.
Давайте посмотрим внимательнее, что такое служба единого входа и как она работает.

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

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

Технически система работает следующим образом:

  1. Пользователь набирает адрес страницы, например, http://www.gotdotnet.ru . Его программа просмотра посылает HTTP-запрос на сервер.
  2. Программа-обработчик на сервере получает запрос. Она проверяет cookies на наличие в них идентификационного ключа (Passport authentication ticket). Если ключ найден, то пользователь получает доступ к запрашиваемой информации. Иначе его отправляют на сервер идентификации(Passport Logon Service).
  3. Попав на сервер идентификации, пользователь вводит существующие имя и пароль для паспорта, или получает новый паспорт. После успешной идентификации, пользователь перенаправляется обратно на исходный ресурс. Дополнительно в аргументах исходному ресурсу передается зашифрованный идентификационный ключ.
  4. Ресурс, получив ключ, удаляет его из параметров и сохраняет в cookies для дальнейшего использования. Пользователь получает доступ.
В течение сессии пользователь может переходить от одного сайта, поддерживающего паспорт, к другому, без дополнительного ввода имени и пароля. Сессия действует не в рамках одного сайта, а в рамках всех сайтов системы паспорт.

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

Какие преимущества вы и ваши пользователи получают от использования паспорта?

Преимущества для пользователей

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

Преимущества для владельцев ресурсов

  • Уменьшение времени разработки – на подключение паспорта требуется несколько часов. Это значительно меньше, чем нужно на разработку собственной системы идентификации пользователей. Тем более, чтобы обеспечить такой же уровень безопасности.
  • Снижение затрат на поддержку - нет необходимости разбираться с вопросами типа «я забыл пароль, что мне делать». Все вопросы уже решены и продуманы в паспорте.
  • Большая клиентская база – в настоящее время выдано уже более 200 миллионов паспортов. Все эти миллионы пользователей могут быстро и удобно воспользоваться вашим ресурсом. Эти пользователи сразу начнут пользоваться ресурсом и не уйдут с него на странице регистрации.
  • Microsoft Passport тесно интегрирован с Windows XP. Пользователю достаточно один раз настроить паспорт, чтобы потом, входя в локальную сеть, автоматически проходить идентификацию в паспорте. Паспорт будет тесно интегрирован и с другими продуктами Microsoft, например, Windows .NET Server.
  • Готовность к подключению дополнительных сервисов – паспорт является ключевым сервисом из набора сервисов Microsoft, работа над которыми идет в настоящее время. Эти сервисы способны дать новое качество вашему ресурсу, но для их работы необходимо использование паспорта.

Недостатки

Паспорт, как и любая система, не лишена недостатков. Я бы выделил два основных недостатка – это удаленность серверов идентификации и стоимость использования.

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

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

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

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

Варианты использования

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

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

Выбор конкрентной схемы работы с паспортом зависит от ваших предпочтений и дальнейших планов по развитию вашей системы.

Преимущество использования паспорта, как дополнительного сервиса в том, что старые пользователи могут продолжать использовать имя и пароль, к которым они привыкли, а новые могут использовать любую схему идентификации на свое усмотрение. Логичный вопрос, который может возникнуть – «но ведь поддержка двух систем всегда сложнее, чем одной». С одной стороны это так. Но с другой стороны – вы ведь тратите силы на то, чтобы подключить к своему ресурсу несколько платежных систем. Для чего вы это делаете? Ведь достаточно указать свои реквизиты и пусть пользователь переводит деньги на ваш счет. Но это неудобно пользователю. И он пойдет и заплатит деньги на том ресурсе, где это ему удобно делать, даже если это будет несколько дороже. Именно поэтому ресурсы подключают разные платежные системы. Но если вы готовы тратить средства, чтобы пользователю было удобно вам платить, то почему не потратить средства, чтобы таких пользователей было больше? Предоставив пользователям возможность быстро воспользоваться вашими услугами, вы уменьшаете потери пользователей.

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

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

Поговорим о безопасности

Это немаловажный вопрос, который нельзя не упомянуть. А насколько безопасна эта система? Можно ли ей доверять?

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

Можно подойти к этому немного с другой стороны.

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

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

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

Как подключить

Технически подключить паспорт в собственную систему не очень сложно. Необходимо установить Passport SDK , получить через систему .Net My Services Manager тестовый ключ (Preproduction Key) и реализовать подключение. Более детальное описание реализации подключения будет темой следующей статьи на GotDotNet.RU.

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

Заключение

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

Мне кажется, что в ближайшее время появятся несколько подобных систем, поскольку удобство от их использования очевидно. Уже сейчас Microsoft Passport – не единственная глобальная система авторизации. Sun сейчас работает над аналогичной системой в рамках проекта Liberty Alliance Project . Есть попытки реализовать систему идентификации в рамках проекта dotGNU .

Какая из этих систем получит максимальное распространение – покажет время.

 
     

   
   
     
  VBNet рекомендует