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. 
Можно подойти к этому немного с другой стороны. 
Я думаю, что над уровнем безопасности этой системы думали гораздо больше, чем в сотнях тех сайтов, где мы вынуждены оставлять свою информацию. Просто потому, что для них авторизация — это лишь малая часть системы и тратить на ее реализацию много сил просто нерентабельно. Взлом паспорта — это большая задача. Гораздо проще взламывать сайты небольших компаний, которые просто не могут себе позволить разработку более-менее серьезных систем защиты, но при этом просят нас оставить о себе информацию. 
Кроме того, можно сколько угодно говорить о технике безопасности, устанавливать различные требования к сложностям паролей. Но только если пользователю приходится иметь больше десятка имен и паролей, то он, скорее всего, их не запомнит. И тогда он просто запишет их либо на листочке и приклеит его на свой компьютер, либо разместит в легко доступном текстовом файле, в открытом виде. А это уже гораздо большая угроза безопасности. 
К тому же каждый сам решает, пользоваться ему системой или нет и в каком объеме. Я не буду там хранить информацию о кредитной карточке. Но облегчить себе жизнь и сохранить там те данные, которые я считаю общедоступными — с удовольствием.

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

Для начала необходимо установить Microsoft .NET Passport SDK 2.1. В процессе установки выбираем, что устанавливаем в режиме Preproduction/Test Environment. 
Система может работать либо в тестовом режиме (PreProduction), либо в действующем (Production). Режим определяет сервера идентификации, с которыми происходит взаимодействие. В тестовом режиме модуль работает с сервером current-login.passporttest.com, а в действующем – с login.passport.com. Эти сервера имеют разные базы зарегистрированных сайтов и пользователей. Переводить систему в режим Production необходимо только после получения Production Key. 

получение тестового ключа

Начинать подключение приложения можно и с тестовым ключом (Site ID = 1), входящим в состав SDK. Но я рекомендую потратить 10 минут, чтобы получить и настроить собственный ключ. 
Получить тестовый ключ можно через систему .NET My Services Manager. В системе необходимо идентифицировать себя через паспорт, после чего возможно создание собственных приложений в разделе My Applications. 
При заполнении полей критическими для работы являются только следующие параметры: 
·Domain Name – домен, в котором находится сайт. Указывайте домен второго уровня. Существует ограничение, что все другие адреса, которые Вы будете указывать, должны находиться в этом домене. 
·Default Return URL – адрес возврата по умолчанию. Если при выполнении авторизации не будет указан адрес возврата, то будет использоваться этот. 
·Expire Cookie URL - указываем адрес, который будет очищать Cookie по окончании регистрации, например, http:///expire.asp. Если данная страница будет отсутствовать или некорректно работать, то пользователь не сможет осуществить процедуру выхода. 
После завершения регистрации возвращаемся в раздел My Applications, выбираем только что созданное приложение. Далее выбираем операцию Download key и получаем себе тестовый ключ. Также при этом запоминаем номер сервера (Site ID). 

регистрация тестового ключа

При регистрации ключей лучше сразу создавать конфигурацию, которая позволит размещать на сервере более одного сайта, поддерживающего паспорт. 
Запускаем Passport Administration Utility, нажимаем New Web Site. Указываем имя сервера, имя хоста и IP адрес. В оставшихся полях заполняем только Site ID и нажимаем Commit Changes. 
Когда Вы будете обращаться программно к объектам Passport Manager, то не сможете указать Site ID, который использовать. Система определяет его самостоятельно по имени хоста и IP адресу (эта пара должна быть уникальна в рамках физического сервера). Сначала проверяется IP адрес, а потом имена хостов внутри этого адреса. 
После того, как Вы завели новую конфигурацию для паспорта, можно установить сам ключ. Для этого надо выполнить два запуска программы-ключа с параметрами: 
Partner_1.exe /addkey /s 
Partner_1.exe /makecurrent /t 0 /s 
После этого необходимо перезагрузить службу IISADMIN. 

подключение паспорта

При подключении паспорта чаще всего для ввода имени и пароля пользователь переходит на сервера паспорта и там вводит свои данные. Кроме того, в паспорте реализована возможность вставить форму входа на свои страницы (Inline Sign-In). Однако я не рекомендую использовать эту возможность. Во-первых, для нее обязательно использование SSL на сервере. Во-вторых, уже были прецеденты, что данная возможность блокировалась по соображениям безопасности. Поэтому лучше использовать первый вариант. 
Мы рассмотрим схему подключения паспорта, при которой сервер не имеет собственной системы идентификации, а использует только паспорт. При этом сервер обычно ведет дополнительно свою базу пользователей, где хранит анкетные данные. Чтобы получить доступ к определенным ресурсам, пользователь должен не только идентифицироваться, но и оставить о себе дополнительную информацию. На каждой странице сервера находится логотип паспорта, позволяющий выполнить вход/выход из системы. 
Такая схема подключения используется на сервере GotDotNet.RU . Сервер идентифицирует через паспорт, а дополнительно спрашивает у пользователя псевдоним (для форумов и пробного хостинга) и адрес электронной почты. 
Для этого необходимо реализовать следующие процедуры:

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

общий код

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

  • IsRegisterPage - проверяет, находимся ли мы сейчас на странице регистрации;
  • UserExists - проверяет по PUID есть ли такой пользователь во внутренней базе. PUID является уникальным кодом пользователя в паспорте и может быть использован для установления однозначного соответствия;
  • ThisURL - возвращает адрес текущей страницы со всеми параметрами, либо без служебных параметров службы паспорта (t,p,did).

Const tNoTicket = 0
Const tStaleTicket = 1
Const tValidTicket = 2
Const lPassportTimeout = 3600
Const lPassportLang = 1049

' Создаем объект Passport Manager
Set oMgr = Server.CreateObject("Passport.Manager")
' После проведения успешной авторизации пользователь
' возвращается на сервер и при этом в аргументах
' передаются дополнительные параметры, необходимые для
' паспорта. Для корректного завершения входа
' необходимо вызвать метод FromNetworkServer, 
' который сохранит необходимые параметры в cookie,
' а потом удалить лишние аргументы из адреса.
' Для этого перенаправляем пользователя на
' текущую страницу, удаляя параметры t,p,did.
' Жаль, что Microsoft не ввел какие-нибудь префиксы
' для своих параметров. Легко попасть в ситуацию,
' когда страница уже имела параметры с такими именами
' и конфликт налицо.
'
' Если этот метод не вызвать, то вход не завершится успешно.
If oMgr.FromNetworkServer Then
' Функция ThisURL возвращает текущий URL, при
' необходимости удаляя из него фикс. параметры
Response.Redirect ThisURL(True)
Response.End
End If

' Проверим состояние идентификационного ключа пользователя
If oMgr.IsAuthenticated(lPassportTimeout) Then
' пользователь идентифицирован

' PUID - уникальный код пользователя в паспорте.
sPUID = oMgr.HexPUID

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

If Not IsRegisterPage() And Len(Session(sSesUID)) = 0 Then
' Необходимо проверить
lUID = UserExists( sPUID)
If lUID >0 Then
' Такой пользователь есть
Session(sSesUID) = lUID
Else
' Такого пользователя нет. Это значит,
' что надо отправить его на страницу
' ввода дополнительных данных.
Response.Redirect sRegURL
End if
End if
ElseIf oMgr.HasTicket Then
' у пользователя есть ключ, но время его
' жизни уже истекло необходимо обновить ключ.
' Это выполняется автоматически.
oMgr.LoginUser Server.URLEncode(ThisURL(False)), _
lPassportTimeout, , , lPassportLang
' далее не должно быть никакого кода, LoginUser
' выполняет Redirect
Else
' пользователь не авторизован
' очистим его значение в сессии
Session(sSesUID) = Empty
End If


регистрация пользователя во внутренней системе

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

  • При установке Passport SDK он устанавливается с Site ID = 1. Можно создавать тестовые реализации и с этим Site ID, не получая собственный ключ через .NET My Services Manager. Но при этом Вы гарантированно не получите никаких данных о пользователе.
  • При работе в PreProduction режиме Вы сможете получить данные только о пользователях, которые зарегистрировались в тестовом режиме. При работе в PreProduction режиме в форме ввода имени и пароля будет ссылка на получение нового паспорта. Необходимо получить такой паспорт и использовать этих пользователей для тестирования. Остальных пользователей Вы сможете только идентифицировать.
  • Получить данные можно, только если пользователь отметил соответствующие разрешающие флаги в своем профайле. 
    Получить данные можно с помощью метода Profile. Перед тем, как вызывать метод Profile , необходимо, чтобы был вызван хотя бы один из методов HasProfile, HasTicket, IsAuthenticated и вернул значение True. 
  • Список атрибутов, которые Вы можете получить, не очень велик – дата рождения, город, страна, фамилия, имя, пол, почтовый индекс, электронный адрес, псевдоним. Часть атрибутов хранят непосредственное значение, а часть строятся на базе словарей. 

Со словарями сразу начинаются проблемы: 
1.Список значений словарей получается не с сервера, а хранится локально. Это явный просчет в архитектуре паспорта. Словари на сервере могут измениться, а их актуальность на клиенте никем не гарантируется. 
2.В словарях для русского языка (поддиректория 1049) установлена кодировка .1252 вместо .1251. 
3.Часть словарей для русского языка, например, города (city.dat) – просто пустые. 
4.Планируется, что значение по коду мы получаем значение из словаря, используя объект LookupTable. Данный объект позволяет быстро загрузить текстовый файл и далее получить значение по ключу. Но даже этим воспользоваться нельзя. Например, Россия описана в справочнике стран строкой «181,Россия,4,2,RU,7». Объект LookupTable может по коду 181 вернуть значение «Россия,4,2,RU,7». А паспорт нам возвращает значение «RU». 
В результате пользоваться значениями на базе словарей практически невозможно. Для тех полей, для которых словари все-таки есть, нужно писать самостоятельную процедуру обработки. А для тех, что нет – увы, придется пользователю вводить информацию заново вручную. 
Далее нам остается только сохранить введенные данные в свою систему. 

отображение логотипа для входа/выхода

Для отображения логотипа достаточно осуществить один вызов метода LogoTag2. Результатом будет строка, содержащая необходимый HTML-код. 
Response.Write( oMgr.LogoTag2(Server.URLEncode _
(ThisURL(False)), lPassportTimeout, , , lPassportLang))

выход из системы

Успешный выход из системы будет осуществлен только в случае корректной работы файла, который Вы указали в поле Expire Cookie URL в .NET My Services Manager. В качестве этого файла можно взять файл expire.asp, который есть в тестовом сервере в составе SDK. Дополнительно в него можно добавить вызов Session.Abandon для завершения сессии на своем сайте. 

активизация

На этом подключение паспорта в режиме PreProduction завершено. Теперь, чтобы активизировать сайт, необходимо: 

  • заключить договор с паспортом;
  • осуществить оплату за использование;
  • через .NET My Services Manager осуществить запрос на перевод сайта в режим Production;
  • дождаться получения по почте дискеты с ключом. По соображениям безопасности, других способов доставки нет;
  • через Passport Administration Utility перевести паспорт в режим Production и установить новый полученный ключ.

настройка внешнего вида

Базовая настройка внешнего вида позволяет Вам размещать логотипы и текст на формах. Но в паспорте предусмотрен механизм и более тонкой настройки внешнего вида. 
Для этого при регистрации сервера в .NET My Services Manager служат параметры:

  • Cobrand URL- адрес страницы, содержащей JavaScript, которая заполняет фиксированные переменные. Укажемhttp:///cobrand.js 
  • Cobrand CSS URL – адрес страницы со стилями. На страницы регистрации она будет включена через обычный link rel=stylesheet.

Поставьте ссылку на файл со стилями вашего сайта. 
При этом оставшиеся параметры (Cobrand Image URL, Cobrand Image2 URL, Cobrand Instruction Text) уже использоваться не будут, но, по-прежнему, являются обязательными для заполнения. 
Файл, определяемый адресом Cobrand URL, должен содержать инициализацию фиксированных переменных JavaScript. Переменные должны содержать строки с HTML-кодом, который будет вставлен в определенные места.

  • CBLoginHead – значение будет добавлено в раздел HEAD на страницу входа. 
  • CBLoginBody – аналогично в раздел BODY.
  • CBRegistrationHead, CBRegistraionBody – аналогично для страницы регистрации.

CBLoginBody, CBRegistrationBody должен содержать подстроку PASSPORT_UI. Вместо этой строки будут добавлены соответствующие формы паспорта. В качестве примера файла можно посмотреть http://www.gotdotnet.ru/cobrand.js. 
Дополнительно Вы имеете возможность настраивать внешний вид не статически, а в зависимости от места вызова. Для этого методы LogoTag2, LoginUser, AuthURL2 имеют дополнительные параметр coBrandArgs. Значение этого параметра будет передано Вашему скрипту и может быть нужным образом обработано. 

использование паспорта в ASP.NET

В заключение добавлю несколько слов об использовании паспорта в ASP.NET: 

  • указываем, что будем использовать идентификацию через паспорт;
  • подключаем System.Web.Security;
  • объявляем переменную private PassportIdentity myPassport;
  • в Page_Load инициализируем переменную myPassport. myPassport = (PassportIdentity ) (Page.User.Identity) ;
  • далее выполняем все вызовы (FromNetworkServer, IsAuthenticated и т.д.), согласно описанию, приведенному выше.

заключение

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

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



Сетевые решения. Статья была опубликована в номере 01 за 2003 год в рубрике технологии

©1999-2024 Сетевые решения