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

Я разрабатываю потребителя 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 существует ли конечное число их, в которых я буду просто hardcode, или разве там должен некоторым образом определить это через спецификацию OpenID?

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

13
задан Community 23 May 2017 в 10:30
поделиться

3 ответа

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

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

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

6
ответ дан 2 December 2019 в 00:45
поделиться

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

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

0
ответ дан 2 December 2019 в 00:45
поделиться

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

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

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

7
ответ дан 2 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: