2008-09-17 104 views
16

所以我喜歡OpenID的想法。我在我的網站上支持它,並在任何可能的地方使用它(如這裏!)。但我不清楚一件事。OpenID提供商 - 什麼阻止惡意提供商?

支持OpenID的網站基本上接受任何OpenID提供商,對嗎?這與那些想要減少bot簽名的網站有什麼關係?什麼是阻止惡意OpenID提供者自動設置無限的bot ID?

我有一些想法,並將它們作爲可能的答案發布,但我想知道是否有人可以看到明顯的我已經錯過的東西?

回答

13

你混淆了兩個不同的東西 - 識別和授權。僅僅因爲你知道誰是誰,並不意味着你必須自動授予他們做任何事情的權限。 Simon Willison在An OpenID is not an account!中對此進行了很好的介紹。有關白名單的更多討論可參見Social whitelisting with OpenID

+11

識別和認證是一回事。我認爲你的意思是認證和授權的區別。 – skaffman 2009-06-25 18:19:44

2

可能的解決方案 - 您仍然可以要求新ID通過CAPTCHA測試。就像機器人可以向任何網站註冊虛假/多個電子郵件地址一樣,但是也不能通過「驗證」步驟。或者我們將不得不開始維護提供商黑名單?考慮到建立一個新的提供商非常簡單,這些工作並不會很好。

3

OpenId並不比用戶在註冊您的網站時選擇的用戶名和密碼多得多。你不依賴於OpenId框架來清除機器人;您的註冊系統仍應該這樣做。

2

據我所知,OpenID只處理標識,而不處理授權。停止機器人是一個授權問題。

9

你的問題的簡短答案是,「它不。」 OpenID故意僅提供一種具有集中認證站點的機制;您需要決定您認爲哪些OpenID提供商可以接受。例如,微軟recently decided to allow OpenID on its Healthvault site only from a select few providers。一家公司可能決定只允許來自其支持LDAP的接入點的OpenID登錄,政府機構可能只接受來自生物識別技術支持網站的OpenID,而博客可能只接受TypePad,因爲他們對垃圾郵件進行了嚴格審查。

在OpenID上似乎存在很多混淆。它的最初目標僅僅是提供一個標準的登錄機制,以便在需要安全的登錄機制時,我可以從任何或所有OpenID提供商中爲我選擇。允許任何人在任何地方建立自己的可信OpenID 供應商從未成爲目標。畢竟做第二件事情是不可能的,畢竟即使有加密,也沒有理由不能設置你自己的提供商來安全地撒謊,並且說它正在認證你想要的任何人。擁有單一的標準化登錄機制本身已經是一大進步。

2

注意,與傳統的「每站點」登錄不同,OpenID爲您提供了一種可能超越單個站點的身份。更好的是,這個標識甚至是一個URI,因此它非常適合與RDF一起使用來交換或查詢關於標識的任意元數據。

你可以用OpenID做一些你不能用新用戶的傳統用戶名來做的事情。

首先,您可以執行一些簡單的白名單操作。如果* .bigcorp.example是來自Big Corp員工的OpenID,並且您知道Big Corp不是垃圾郵件發送者,那麼您可以將這些OpenID列入白名單。對於半封閉的網站來說,這應該效果不錯,或許它是現在和過去員工的社交網站。

儘管如此,您可以使用特定OpenID的其他地方進行推理。假設你有一個來自Stackoverflow.com的聲譽值的OpenID映射。當有人在你的網絡論壇上用OpenID出現時,你可以看到他們是否在Stackoverflow有良好的聲譽,並跳過這些用戶的CAPTCHA或試用期。