ФЭНДОМ


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

История развития Править

Протокол OpenID разработал Брэд Фицпатрик, один из создателей LiveJournal. Дальнейшие улучшения в спецификацию вносились многими специалистами, так как в отличие, к примеру, от TypeKey, OpenID изначально проектировался, как независимый от провайдера аутентификации. Для улучшения механизма, стимулирования разработчиков и скорейшего распространения проекта в августе 2006-го на развитие было выделено 50.000 USD — по 5.000 USD каждому из десяти крупных opensource-проектов, задействовавших поддержку OpenID. Начиная с версии 1.1, OpenID использует протокол Yadis. В настоящее время закончена работа над версией 2.0

Терминология Править

Конечный пользователь 
лицо, которое хочет идентифицировать себя на сайте
Идентификатор 
URI или XRI, выбранный пользователем в качестве OpenID-идентификатора
Провайдер идентификации или OpenID провайдер 
лицо, предоставляющее сервис регистрации и проверки подлинности Идентификаторов
Зависимая сторона 
лицо, желающее проверить подлинность Идентификатора Конечного пользователя
Сервер или сервер-агент 
сервер, проверяющий Идентификатор Конечного пользователя. Это может быть личный сервер пользователя (например, блог) или сервер Провайдера идентификации.
Агент пользователя 
программа (как правило, браузер), используемая клиентом для доступа к Провайдеру идентификации или к Зависимой стороне
Потребитель 
устаревшее название Зависимой стороны

Вход через OpenID Править

На сайте, назовём его, к примеру, example.com, располагается форма входа, но вместо привычных полей логин и пароль, в ней только одно — для ввода OpenID идентификатора. Иногда рядом с полем располагается логотип OpenID. Для веб-разработчиков — за обработку формы отвечает клиентская часть библиотеки OpenID.

Чтобы пользователь Вася смог пройти авторизацию example.com с помощью OpenID идентификатора pupkin.openid-provider.org, который он зарегистрировал у провайдера идентификации openid-provider.org, Вася просто заходит на example.com и вводит свой OpenID в предлагаемую форму.

Если идентификатор представляет собой URL, то первое, что делает зависимая сторона (example.com) — приводит его к нормальному виду, то есть к виду http://pupkin.openid-provider.org/. В соответствии с OpenID 1.0 зависимая сторона запрашивает веб-страницу по этому адресу и через HTML тэг <link> находит URL сервера провайдера OpenID, например, http://openid-provider.org/openid-auth.php. Зависимая сторона (клиент) также проверяет, стоит ли ему использовать делегированный идентификатор (см.ниже). С версии OpenID 2.0 зависимая сторона проводит инспекцию запрашивая XRDS документ (который также называют Yadis документом) с типом application/xrds+xml, который может располагаться по введенному URL, и всегда доступен для введённого XRI.

Зависимая сторона может обмениваться с провайдером идентификации двумя способами:

  • checkid_immediate — машинно-ориентированный, в котором обмен информации между серверами идёт в фоне, без ведома пользователя;
  • checkid_setup — где пользователь напрямую обращается к сайту провайдера идентификации, используя тот же браузер, с которого он заходит на сайт зависимой стороны.

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

Сначала зависимая сторона и провайдер (необязательно) согласовывают shared secret или секретный кодописатель партнёра (associate handler), который зависимая сторона сохраняет. В режиме checkid_setup зависимая сторона переадресует браузер пользователя к провайдеру. В данном случае браузер Васи переадресуется на openid-provider.org, где провайдер сможет опознать Васю.

Метод идентификации пользователя может быть любым, но обычно OpenID провайдер запрашивает пароль (затем, как правило, сохраняет сессию в cookie, как это делает большинство сайтов с парольным доступом). Если Вася не залогинен, то провайдер может спросить пароль для входа на openid-provider.org. Затем провайдер спросит, доверяет ли Вася, к примеру, http://example.com/openid-return.php — странице, указанной example.com для возврата пользователя после проверки подлинности, куда будет отправлена его информация. Если Вася ответит утвердительно, идентификация по OpenID признаётся успешной и браузер с соответствующими полномочиями перенаправляется на указанную страницу. В случае недоверия Васи указанной странице зависимой стороны браузер всё равно перенаправляется — однако, так как зависимая сторона получает отказ на свой запрос, example.com в свою очередь, отказывается впустить Васю.

Однако процесс входа всё ещё не завершён, потому что на данном этапе example.com должен удостовериться, что полномочия пользователю выдал действительно openid-provider.org. Если стороны предварительно договорились о секретном ключе (shared secret см.выше), то зависимая сторона может проверить ключ, полученный вместе с полномочиями пользователя по имеющейся у неё информации. Такая зависимая сторона называется хранящей состояние (stateful), так как она сохраняет секретный ключ между сессиями. В противоположность ей зависимая сторона без памяти (stateless) или немая (dumb) должна совершить ещё один фоновый запрос (check_authentication) для проверки того, что данные действительно пришли с сервера openid-provider.org.

После проверки Васиного идентификатора, Вася признаётся зашедшим на example.com как pupkin.openid-provider.org. После чего сайт может сохранить сессию или, если это первый визит, запросить у пользователя дополнительную информацию необходимую example.com для завершения регистрации.

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

Simple Registration Extension Править

Первоначально OpenID создавался исключительно для аутентификации пользователя, но после непродолжительной эксплуатации появилась острая потребность в предоставлении дополнительной информации о конечном пользователе. Для решения этой проблемы было разработано расширение протокола — Simple Registration Extension. Провайдеры аутентификации, которые поддерживают это расширение, могут хранить информацию о т. н. «персонах». «Персона» — запись, содержащая Ваше имя, адрес электронной почты и другие данные, которые обычно требуются для регистрации на сайтах. Любая персона может быть выбрана, как «публичная» — её содержимое сможет посмотреть каждый даже без согласия персоны на это.

Критика Править

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

Аналоги Править

Ссылки Править

de:OpenID en:OpenID eo:OpenID es:OpenID eu:OpenID fa:اپن‌آی‌دی fi:OpenID fr:OpenID he:OpenID hu:OpenID it:OpenID ja:OpenID ko:OpenID nl:OpenID no:OpenID pl:OpenID pt:OpenID sk:OpenID sv:OpenID th:โอเพนไอดี tr:OpenID (açık kimlik oturumu) uk:OpenID vi:OpenID zh:OpenID

Обнаружено использование расширения AdBlock.


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

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

Также на ФЭНДОМЕ

Случайная вики