Является ли Google единственным поставщиком OpenID, который требует "identifier_select"? - PullRequest
13 голосов
/ 10 июня 2010

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 15 июня 2010

Автор LightOpenID здесь.

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

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

6 голосов
/ 11 июня 2010

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

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

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

0 голосов
/ 10 июня 2010

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

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

...