1. Всем привет. Многие, наверное, уже видели весьма любопытный интернет-магазин от гугла, на котором он демонстрирует как надо правильно делать вход на сайт с использованием OpenID. Я сейчас пытаюсь воспроизвести этот подход, и столкнулся с некорректной работой в этом магазине OpenID-провайдеров Яндекса, Рамблера и Mail.ru - т.е. всех крупнейших почтовых сервисов рунета.

    Я точно знаю, что у Рамблера и Mail.Ru поддержка OpenID далеко не идеальна. В частности, discovery хромает на обе ноги, а Mail.Ru вообще не умеет "OP-driven identifier selection". Но чтобы провайдер Яндекса не работал - это нонсенс, особенно зная, что в Яндексе работает ярый приверженец стандарта :)

    У меня большая просьба к Ивану Сагалаеву и к разработчикам других почтовых сервисов со своими OpenID-провайдерами (если они читают этот форум) - разберитесь. Я уверен, что примеру Google скоро последуют другие разработчики. И допилив поддержку протокола, хотя бы в части полноценного discovery и identifier selection, вы очень сильно поможете и вашим пользователям, и программистам, внедряющим этот метод.

    На данный момент не работает ни указание email, ни даже прямой ввод OpenID "http://yandex.ru" или "http://rambler.ru". Для сравнения, "http://myopenid.com" и "http://oneid.ru" - работают нормально.

  2. Ivan Sagalaev

    05.12.2010

    0 ↑
    0 ↓

    Кирилл, спасибо за интерес к теме, читал сегодня с утра ваш пост :-).

    Вы зря только называете текущее поведение странным, потому что discovery OpenID по email'у не входит в OpenID, и есть по крайней мере две разные идеи о том, как его делать — та, на которую вы сослались, и WebFinger. Впрочем, openidsamplestore.com мы уже видели и с тех пор планируем сделать и то, и то.

    Что касается того, почему не работает discovery с http://yandex.ru/ — это надо подробно разбираться. Оно работает уже давно и много с кем, поэтому видимо тут есть какие-то особенности во взаимодействии.

  3. Ivan Sagalaev

    05.12.2010

    0 ↑
    0 ↓

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

  4. discovery OpenID по email'у не входит в OpenID

    Да, это я понимаю, но некоторые разумные соглашения в этой области пошли бы на пользу всем. Очень надеюсь, что скоро какой-нибудь из методов станет стандартным. Насколько я понял, Google хочет сильно усовершенствовать discovery в будущей версии протокола.

    We are currently participating in several standardization organizations, such as OASIS and the OpenID Foundation, to generate a next-generation OpenID discovery protocol

    А пока что и попытка использовать домен почты для начала discovery - это уже хорошо. В том, что пользователь может ввести адрес электронной почты, или ткнуть в название почтового сервиса - в этом никто особо не сомневается. А вот в способности ввести OpenID (как и в знании, что это такое вообще) - сомнений много. Я сам всегда старался заниматься просвящением в этой сфере, но это требует не одного года. Так что email вместо openid, даже как текущее решение - весьма неплохо. Пользователь не сталкивается ни с чем незнакомым, не вводит много сведений, не забивает себе голову лишними премудростями.

    А кроме того, не так уж и много этих крупнейших почтовых сервисов. В рунете, например - всего трое. Можно и схитрить чуть-чуть, сделав небольшой конфиг rewrite-правил email → OpenID и пару discovery-middleware для более сложных случаев, вроде доменов на Google Apps. Для остальных - применять стандартный discovery с OP-driven selection, а уж совсем в крайнем случае (не работает discovery и у человека нет ни одного ящика из описанных в списке провайдеров) - отправить его получать OpenID или "идеологически правильный" ящик. Раз уж всё равно ему придётся регистрироваться :) Некоторые провайдеры позволяют сделать это так, чтобы посетитель потом вернулся на исходный сайт. Но таких должно быть очень немного, судя по статистике - буквально единичные случаи.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.