Является ли Google единственным поставщиком OpenID, который требует "identifier_select"?

Я разрабатываю потребитель OpenID в PHP и использую фантастическую библиотеку LightOpenID (http://gitorious.org/lightopenid). Исходя из моего кода, найденного в примере клиент script, я успешно создал пользователя. Однако я столкнулся с проблемой: Google требует, чтобы openid.identity и openid.claimed_id были установлены на "http://specs.openid.net/auth/2.0/identifier_select" (см. здесь). Если я это сделаю, это работает, но другие провайдеры (т.е. AOL) этого не делают.

Вот мои вопросы:

  • Является ли Google поворотным аргументом - это единственный поставщик OpenID, где identifier_select требуется, вопреки спецификациям OpenID?
  • Есть ли недостаток в библиотеке LightOpenID?
  • Насколько я понимаю, как работает OpenID?
  • Если Google не является единственным провайдером, для которого требуется identifier_select, есть ли конечное число из них, которое я просто укажу в жестком коде, или можно каким-то образом определить это через спецификацию OpenID?

Я новичок в работе с OpenID, поэтому я не удивлюсь, если это глупый вопрос. Я не смог найти информацию по этому вопросу после очистки Интернета.

Ответы

Ответ 1

Google не противоречит спецификации. Спецификация OpenID 2.0 абсолютно разрешает потоки identifier_select, которые позволяют использовать что-то под названием "направленная идентификация", которую Google является единственным заметным OP (который я знаю), который на самом деле реализует способность делать.

И да, полностью и правильно реализованная библиотека OpenID RP автоматически заметит, что Google (и любой другой OP, подобный ей) требует идентификатора_селемента, поскольку он является частью этапа обнаружения идентификатора, который поднимает это. Извините за библиотеку, которую вы используете, но похоже, что это вызывает у вас горе из-за возможной неполной реализации OpenID.

И, кстати, AOL поддерживает identifier_select.

Ответ 2

Создатель LightOpenID здесь.

  • Спектр позволяет это, поэтому он, вероятно, не единственный (другие ответы упоминаются в Yahoo)
  • Нет, нет. LightOpenID поддерживает это. (см. example-google.php в библиотеке).
  • Вам все еще нужно знать URL-адрес открытия, поэтому вам нужно знать поставщика. Или сообщите пользователям ввести https://www.google.com/accounts/o8/id в качестве их личности.

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

Ответ 3

Это используется для аутентификации в режиме выбора управляемого Driven ID. Это менее распространенный, но не угловой случай. Среди всех поставщиков OP, которые я использую, я заметил, что Google и Yahoo требуют этого.

Это необходимо для поддержки Directed Identity в OpenID 2.0. В принципе, вы получаете другой OpenID для разных сайтов. Существует толчок, чтобы перейти к этой модели сторонниками защиты частной жизни, поэтому я думаю, что вы должны поддерживать это вскоре или позже.