2011-08-04 6 views
0

Я пытаюсь создать персональный идентификатор на основе OpenID, используя мое доменное имя в качестве идентификатора. Я хочу иметь возможность выполнить все это:Советы по надежному OpenID с вашим собственным доменом

  • http://alvaro.es/ мой идентификатор.
  • Можете переключаться между поставщиками прозрачно.
  • Зайдите на любой сторонний сайт, принимающий OpenID.
  • Можете предоставить персональные данные (электронная почта, часовой пояс, аватар ...) и получить запрос о том, отправлять их или нет на сайты, которые их запрашивают.
  • Принять OpenID на моих собственных (PHP-powered) сайтах без необходимости покупки SSL-хостинга.

Я прочитал the usual doc и я оценки нескольких OpenID-провайдеров (Google, Yahoo, myOpenID ... и даже running my own server). Дело в том, что я использовал OpenID некоторое время и:

  • Провайдеры предлагают очень скудную документацию или вообще ничего.
  • Независимо от того, какой поставщик я выбираю, всегда есть сайты, на которых лог-вход завершается с ошибкой (обычно без сообщения об ошибке).
  • У меня мало управления (или вообще нет) на идентификаторе, возвращаемом поставщиком.
  • Я все еще не могу понять, как все это действительно работает.

Я ищу общий совет, но я понимаю, что это может быть субъективным, поэтому я сделаю несколько конкретных вопросов.


До сих пор я пытаюсь из myOpenId в качестве поставщика и LightOpenID как потребитель. Мои вопросы:

  1. My URL обеспечивает HTTP заголовок:

    X-XRDS-Location: http://kalvaro.myopenid.com/?xrds=1 
    

    ... и следующие HTML-теги:

    <link rel="openid.server openid2.provider" href="http://www.myopenid.com/server"> 
    <link rel="openid.delegate openid2.local_id" href="http://kalvaro.myopenid.com"> 
    

    это правильно? Это достаточно?

  2. myOpenID обеспечивает ваши домены, особенность зарегистрировать свое собственное доменное имя, но я не осмелился проверить его (требуется изменения в DNS) и форма конфигурации предполагает, что я должен выбирать между http://openid.alvaro.es/username и http://username.alvaro.es/ в качестве идентификатора (не http://alvaro.es/). Однако Stackoverflow по-прежнему сообщает alvaro.es как мой идентификатор без этой функции. Нужно ли мне это использовать?

  3. При реализации LightOpenID я сопоставляю локального пользователя с $openid->identity (где $openid - это экземпляр объекта LightOpenID). Этот атрибут является URL-адресом, предоставленным пользователем. Правильно ли это?

  4. Есть ли более адекватные провайдеры или библиотеки потребителей, чем те, которые я выбрал?

ответ

1
  1. Это правильно. Этого более чем достаточно. Хотя предоставление X-XRDS-Location - это хорошо, поскольку он ускоряет процесс обнаружения, это не обязательно.
  2. Насколько я понимаю, «ваши домены» полезны, когда вы хотите иметь несколько учетных записей в своем домене. Во всяком случае, вам не нужно использовать его вообще.
  3. Это правильно. URL-адрес также называется заявленным идентификатором, то есть тем, что, как утверждает пользователь.
  4. Как автор LightOpenID, мой ответ очевиден и, возможно, предвзятый - я его создал, потому что я не мог найти хорошую существующую библиотеку.

Других вещей, которые вы могли бы хотеть знать:

  • делегация не будет работать с Google, и любой другой поставщик, который использует select_identifier (т.е. каждый счет имеет тот же URL-адрес, а затем провайдер просит вас для вашего логина).
  • Ваша делегация, как показано в 1., позволит вам переключаться между поставщиками прозрачно и входить в систему на любом сайте, который поддерживает OpenID, так, как вы хотите.
  • Что касается персональных данных, это зависит полностью от поставщика, независимо от того, отправляет он или нет, какую личную информацию он поддерживает и т. Д. Например, Google не позволяет вам выбирать, что отправлять, только если отправить что-то (и все, что требует сайт).
  • Некоторые реализации ошибочны и действительно терпят неудачу. Попробуйте войти в систему во второй раз, он работает иногда.
  • Идентификатор, возвращаемый вашим провайдером, не имеет значения, используете ли вы делегацию. Веб-сайт, на который вы входите, должен использовать ваш заявленный идентификатор.

Что касается работы openid, см. Некоторые answers to that question on SO.

+0

Очень четкий ответ, спасибо большое. Я никогда не буду полностью понимать OpenID, но я думаю, что, наконец, я собрал минимум, чтобы реализовать его на своих сайтах. –

 Смежные вопросы

  • Нет связанных вопросов^_^