2010-06-10 144 views
13

我正在開發PHP中的OpenID使用者,並使用了夢幻般的LightOpenID庫(http://gitorious.org/lightopenid)。根據示例客戶端腳本中找到的代碼,我成功創建了一個使用者。但是,我遇到了一個問題:Google要求將openid.identityopenid.claimed_id設置爲"http://specs.openid.net/auth/2.0/identifier_select"(請參閱here)。如果我這樣做,但其他提供者(即美國在線)不這樣做。Google是唯一需要「identifier_select」的OpenID提供者嗎?

這裏是我的問題:

  1. 是谷歌一個角落的情況下 - 它是在需要identifier_select唯一OpenID提供商,違背了OpenID的規格?
  2. LightOpenID庫存在缺點嗎?
  3. 我瞭解OpenID的工作原理嗎?
  4. 如果Google不是唯一需要identifier_select的供應商,那麼我們只需要硬編碼的數量有限,還是可以通過OpenID規範來確定?

我是OpenID的內部新手,所以如果這是一個愚蠢的問題,我不會感到驚訝。在搜索互聯網後,我一直無法找到關於此主題的任何信息。

+1

當然不是一個愚蠢的問題(如果他們存在),你甚至提供了充足的信息,相關的鏈接,良好的問題和一個筆記,你實際上自己尋找這個! – 2010-06-10 23:16:53

回答

6

谷歌不違反規範。 OpenID 2.0規範絕對允許使用identifier_select流,它可以啓用一種稱爲「定向身份」的功能,Google是唯一着名的OP(據我所知)實際上可以執行此功能。

是的,一個完整且正確實施的OpenID RP庫會自動注意到Google(以及其他任何類似於它的OP)需要identifier_select,因爲它是標識符發現步驟的一部分。對不起,您正在使用的圖書館,但它聽起來像是由於可能是OpenID的不完整實現而導致您的悲傷。

並且順便說一句,AOL 確實支持identifier_select,

+1

看起來我只需要擴展庫(LightOpenID)。兩種流行的PHP OpenID庫(Zend組件和JanRain的PHP-OpenID)提供了比我需要的更多的靈活性,並且沒有LightOpenID那麼好的界面。祝我好運! – Skrat 2010-06-11 13:53:45

+0

我認爲大多數人都支持定向身份,包括myopenid和yahoo。 – Artefacto 2010-06-13 13:06:02

+0

Artefacto,我認爲你會將定向身份與identifier_select混淆,這是不同的事情。 Identifier_select是OP標識符發起的OpenID體驗,用戶不必知道他自己的標識符。 「定向身份」是OP爲用戶登錄的每個RP提供成對唯一標識符的地方。雅虎例如支持identifier_select,但是* not *定向標識。 – 2010-06-13 14:49:59

0

這用於在OP驅動ID選擇模式下進行身份驗證。這是不常見的,但不是一個角落的情況。在我使用的所有OP提供商中,我注意到Google和雅虎需要這個。

這是在OpenID 2.0中支持定向標識所必需的。基本上,你爲不同的網站獲得了不同的OpenID。隱私權倡導者推動這一模式的發展,所以我認爲你不得不在不久的將來支持這種模式。

+0

在重定向用戶之前,有什麼方法可以檢測到提​​供者需要定向標識嗎? 我可以硬編碼支持雅虎和谷歌,但我仍然希望尋找更靈活的解決方案。 OpenID規範中可能有些東西是我錯過了,明顯的東西。 – Skrat 2010-06-10 21:57:10

+0

與OpenID 1.0不同,您必須爲OpenID 2.0提供程序進行一些配置工作。例如,您需要用NASCAR徽標來粘貼您的網站,因爲您無法期望用戶知道OpenID 2.0 URL是什麼。你可以爲你的網站配置添加一個標誌。 – 2010-06-10 23:15:48

7

LightOpenID作者在這裏。

  1. 該規範允許的話,那麼它可能不是唯一一個(其他答案提到雅虎)
  2. 沒有,沒有– LightOpenID支持這一點。 (見庫中的example-google.php)。
  3. 您仍然需要知道發現網址,因此您需要了解提供商。或告訴用戶輸入https://www.google.com/accounts/o8/id作爲他們的身份。

請注意,這個答案是關於我的圖書館的最新版本,它是在問這個問題後被推送的。對於任何人仍然在努力解決這個問題,請下載newest version

+0

Mewp,感謝您幾天前推出的圖書館更新。現在,「identifier_select」的使用是自動的(即構建在發現過程中),這意味着LightOpenID的使用對於所有提供者將以相同的方式運行。 再次感謝您,繼續努力!我愛你的圖書館,這樣乾淨(閱讀'可讀')的代碼很少見。 – Skrat 2010-06-22 18:34:10

+0

我剛剛陷入了OpenID的誘惑,我只想說我絕對喜歡你的課程。對於我整晚都在閱讀的OpenID概念,我仍然非常青睞,但我仍然不太瞭解AX和SREG--但明天又是新的一天!另外,如果我嘗試分叉代碼並將其作爲我的OSS項目(http://sf.net/projects/phunction/)的一部分發布,您是否也會介意,也是MIT許可的? – 2010-07-14 07:08:19

+0

@Alix Axel:由於您的項目是麻省理工學院許可的,您一定知道該許可證允許。換句話說:當然你可以,只要你不要求你寫了它。此外,您不必深入瞭解SREG/AX如何工作。這只是一種獲取關於用戶的附加信息的方法,您可以將其標記爲情緒或需要。唯一需要了解的是AX字段名稱,可在http://www.axschema.org/types/上找到。如果您還有其他問題,請給我發消息。 – Mewp 2010-07-15 22:11:28

相關問題