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