2011-08-04 40 views
0

我試圖建立一個個人基於OpenID的在線身份使用我的域名作爲標識符。我希望能夠完成所有這些:可靠的OpenID與您自己的域名的提示

  • 使http://alvaro.es/我的標識符。
  • 能夠透明地切換提供者。
  • 登錄到任何接受OpenID的第三方網站。
  • 能夠提供個人詳細信息(電子郵件,時區,頭像...),並提示是否發送或不發送請求他們的網站。
  • 在我自己的(PHP驅動的)網站中接受OpenID,而不需要購買SSL託管。

我讀過the usual doc,我一直在評估了多個OpenID提供(谷歌,雅虎,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提供你的域,功能,註冊自己的域名,但我還沒敢來測試它(它需要更改DNS)和配置形式表明我有http://openid.alvaro.es/usernamehttp://username.alvaro.es/之間做出選擇作爲標識符(不是http://alvaro.es/)。但是,Stackoverflow仍將alvaro.es報告爲我的標識符,但沒有此功能。我需要使用它嗎?

  3. 實施LightOpenID時,我將本地用戶與$openid->identity(其中$openidLightOpenID對象的實例)進行匹配。該屬性似乎是用戶提供的URL。這是對的嗎?

  4. 是否有比我選擇的供應商或消費者圖書館更充足的供應商或消費者圖書館?

回答

1
  1. 這是正確的。這是綽綽有餘。雖然提供X-XRDS-Location是一件好事,因爲它會分離發現過程,所以它不是非常必要的。
  2. 據我瞭解,「您的域名」在您想要在您的域中擁有多個帳戶時非常有用。無論如何,你根本不需要使用它。
  3. 這是正確的。該網址也被稱爲聲明標識符,即用戶聲稱是。
  4. 作爲LightOpenID的作者,我的回答很明顯,可能有偏見 - 我創建了它,因爲我找不到一個好的現有庫。

你可能想其他的事情知道:

  • 代表團不會與谷歌合作,以及誰在使用select_identifier(即每個賬戶的任何其他供應商有相同的URL,然後供應商要求你爲您的登錄)。
  • 如您在1中所示,您的代表團將允許您透明地切換提供者並按照您的需要登錄到任何支持OpenID的站點。
  • 至於個人的詳細信息,完全取決於提供商,它是否發送它,它支持什麼樣的個人信息等。例如,Google不允許您選擇發送內容,而僅限於發送一些東西(以及網站聲稱需要的一切)。
  • 一些實現是越野車,並且確實失敗。嘗試第二次登錄,它有時會起作用。
  • 如果您使用委派,提供商返回的標識符應該無關緊要。您登錄的網站應使用您聲明的標識符。

至於如何openid的作品,請參閱一些answers to that question on SO

+0

非常明確的答案,非常感謝。我永遠不會完全理解OpenID,但我想我已經收集了最低限度的實施它在我的網站。 –

相關問題