【问题标题】:Tips for reliable OpenID with your own domain使用您自己的域获得可靠 OpenID 的提示
【发布时间】:2011-08-04 08:47:17
【问题描述】:

我正在尝试使用我的域名作为标识符来构建基于 OpenID 的个人在线身份。我希望能够完成这一切:

  • http://alvaro.es/设为我的标识符。
  • 能够透明地切换供应商。
  • 登录任何接受 OpenID 的第三方网站。
  • 能够提供个人详细信息(电子邮件、时区、头像...)并提示是否将其发送到请求它们的站点。
  • 在我自己的(PHP 驱动的)网站中接受 OpenID,无需购买 SSL 托管。

我已经阅读了the usual doc,并且一直在评估几个 OpenID 提供商(Google、Yahoo、myOpenID...,甚至是 running my own server)。事实上,我使用 OpenID 已经有一段时间了:

  • 提供商提供的文档非常稀缺或根本没有。
  • 无论我选择哪个提供商,总会有一些网站登录失败(通常没有错误消息)。
  • 我对提供商返回的标识符几乎没有控制权(或根本没有控制权)。
  • 我仍然无法理解这一切究竟是如何运作的。

我正在寻找一般性建议,但我知道这可能是主观的,所以我会提出一些具体的问题。


到目前为止,我正在尝试将 myOpenId 作为提供者,将 LightOpenID 作为消费者。我的问题是:

  1. 我的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 提供 Your Domains,一个注册你自己的域名的功能,但我不敢测试它(它需要更改 DNS)并且配置表单表明我必须在两者之间进行选择http://openid.alvaro.es/usernamehttp://username.alvaro.es/ 作为标识符(不是 http://alvaro.es/)。但是,没有此功能,Stackoverflow 仍将 alvaro.es 报告为我的标识符。我需要使用它吗?

  3. 在实现 LightOpenID 时,我将本地用户与$openid-&gt;identity 匹配(其中$openidLightOpenID 对象的实例)。此属性似乎是用户提供的 URL。对吗?

  4. 是否有比我选择的更合适的提供者或消费者库?

【问题讨论】:

    标签: php openid lightopenid


    【解决方案1】:
    1. 是正确的。这绰绰有余。虽然提供 X-XRDS-Location 是一件好事,但它可以加速发现过程,但并不是绝对必要的。
    2. 据我了解,当您想在自己的域中拥有多个帐户时,“您的域”很有用。无论如何,你根本不需要使用它。
    3. 是正确的。 url 也称为声明标识符,即用户声明的内容。
    4. 作为 LightOpenID 的作者,我的回答是显而易见的并且可能有偏见 - 我创建了它,因为我找不到一个好的现有库。

    您可能想知道的其他事项:

    • 委派不适用于 Google 和任何其他使用 select_identifier 的提供商(即每个帐户都有相同的 url,然后提供商会要求您登录)。
    • 您的委托,如 1. 所示,将让您根据需要透明地切换提供商并登录到任何支持 OpenID 的站点。
    • 至于个人信息,完全取决于提供者,是否发送,支持什么样的个人信息等等。例如,谷歌不让你选择发送什么,只有是否发送发送一些东西(以及网站声称需要的所有东西)。
    • 有些实现有问题,确实失败了。尝试再次登录,它有时会起作用。
    • 如果您使用委托,您的提供者返回的标识符应该无关紧要。您登录的网站应使用您声明的标识符。

    至于openid是如何工作的,请看一些answers to that question on SO

    【讨论】:

    • 一个非常明确的答案,非常感谢。我永远不会完全理解 OpenID,但我想我终于收集到了在我的网站中实现它的最低限度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多