OpenID倡議 別再建立新的使用者名稱和密碼

2021-06-19 19:03:39 字數 3308 閱讀 4512

隨著stack overflow開發工作的逐步深入,我們不可迴避地碰到了這個問題:我們需要讓使用者登入,即使網路上使用者名稱/密碼已經氾濫成災,我們也只能隨波逐流。我已經有50對使用者名稱/密碼了。我根本記不住它們。但是,為stackoverflow.com再增加一對又何妨呢?

在我的朋友jon galloway的力勸之下,我打算看一看openid。openid的目標就是要解決這個「登入**」的問題:

有了openid,你就不必在不同的**上分別建立使用者名稱了——它能讓你的上網體驗變得更加簡易。

你需要選擇乙個最符合你要求的openid**商,最重要的是,你要信任它。並且,不管你選擇哪個**商,你都可以一直保留你的openid。最最美妙的是,openid技術並不是私有的,而且它完全免費。

秉著「少說、多做」的精神,接下來,我將解釋openid的工作原理。

讓我們假設你第一次訪問某個新的**。在隨意瀏覽之後,你最終想做一些匿名訪客沒有許可權做的事情。於是,你會被帶到乙個「建立新賬號」之類的頁面。我相信,每個人都碰到過這種情況。但是,如果這個**支援openid,你就可以跳過建立新賬號所需的那些繁瑣步驟。在這種情況下,你只須輸入你的openid:

從技術上來說,openid其實就是url。下面是幾個例子:

這裡有乙個可用性問題:與記住email位址比起來,你必須記住相對完整的openid url,而且各個openid**商定義的格式還各不相同。面對這個問題,儘管也有巧妙的方法(我會在後面提到),但眼下的id選擇控制項也不賴,它提供了相當友好的介面來協助使用者完成openid url的構建。

如果你輸入的url是正確的,你會被重定向到openid**商的**,然後你在那兒輸入你唯一的一對使用者名稱/密碼。

你會看到提示,要求將你當前訪問的這個**加入到**商的「可信**」列表裡,並與你的賬號繫結。一旦你做了這一步,下次再訪問這個**的時候你就可以省去所有這些步驟了。

最後,你總算完成了首次登入!

這就引出了openid的另乙個問題。你使用openid的體驗如何,很大程度上取決於你所選擇的**商。比如,雅虎就很聰明,即使你只輸入了「yahoo.com」作為openid url,它照樣能工作。(假設你已經為你的雅虎賬號設定了openid的支援。)**商還可以提供一些獨特的功能,使自己有別於其他**商。例如,signon.com允許使用windows上的資訊卡,這樣的話,你甚至不用輸入任何密碼就可以登入乙個**。當然,你需要做一些準備工作,也就是要預先把你的**商賬號與資訊卡關聯起來。我試過了,正如廣告上所說的那樣,這種方法行得通。

在試驗過openid之後,我的感覺還是相當正面的。不過,擺在openid面前的也不盡是美酒與鮮花。stefan brands經過詳盡的論證,他在「the problem(s) with openid」一文中指出了openid的一些潛在的大問題:

正如我前面所說的,我覺得這些詬病中的大部分都可以通過選擇乙個值得信賴的優質openid**商來避免。特別是,你選擇的**商須使用ssl。既然這是乙個開放的生態系統,我希望更多有良好信譽、可靠的openid**商能夠挺身而出。考慮一下它的優點吧:作為應用程式的開發者,你不再需要顧及如何儲存密碼了!這是乙個巨大的好處,因為你要盡可能避免儲存使用者的密碼。你一定要聽我這句話!

我還發現了jan miksovsky在2023年8月發表的一篇文章,題為「openid:great idea, bewildering consumer experience」(openid的想法不錯,但使用者體驗讓人很困惑)。他在文中痛快淋漓地批判了openid的使用者體驗:

這究竟是為啥?就為了讓我不必選擇一對使用者名稱和密碼嗎?儘管那很無聊,但也不算太難吧!記住乙個隨意的使用者名稱確實挺麻煩的,但只要允許email位址用作id幾乎就可以解決所有的問題。隨著越來越多的**允許email位址作為id來登入,使用者對openid的需求就沒那麼迫切了。

為了共享id的一點邊際效益,乙個理智的運營商會願意折磨他們的使用者嗎?至少在眼下,那是無法想象的。我看到很多人宣稱,只要像谷歌這樣的大佬支援一下openid,問題便會迎刃而解。遺憾的是,不管公司規模是大是小,他們都承受不起使用者的流失。

大多數服務運營商會盡量把選擇權留給使用者——既支援私有id,又支援openid——但對使用者來說,這卻是乙個討厭的經濟命題:要麼在令人費解的流程裡一次性折騰30分鐘,要麼在每乙個**上都花兩分鐘快速過一遍熟悉的流程(他們以前已經做過無數次了)——人們都很忙,一般總是會選擇自己熟悉的方法。我敢打賭,大部分人會繼續使用私有id——賭什麼都行!這將進一步延遲採納openid可能帶來的網路效應。

在jan miksovsky丟擲的觀點中,最引人注目的也許是這個:讓使用者把自己與乙個隨意的url(而不是email位址)關聯在一起,這是有點古怪的!在今天的試驗中,我也確實看到了一些**不修邊幅的情況。但我想說的是,自從jan當初研究了openid以來,openid的使用者體驗已經有了提公升。這讓人很受鼓舞!

我知道,openid遠不是乙個理想的解決方案。但是在眼下,「每個**都有單獨的登入賬號」的問題已經非常嚴重,以致於我願意接受一些折中方案,以免情況繼續惡化下去。我絕不可能把我的銀行賬號與openid繫結。但是,還有很多其他的**,我不需要它們達到銀行那樣的安全級別,而我使用它們的頻率遠遠高於我的銀行賬號。要記住所有這些**上的登入賬號——一旦密碼忘記了,我的email收件箱就成了事實上的集合點和安全通道——所有這些痛苦累加起來,是巨大的、實實在在的!

如果你是一位軟體開發者、你在做乙個需要使用者登入的應用程式,請考慮採用openid,而不是讓使用者建立新的使用者名稱/密碼來繼續玷汙這個世界。我也鼓勵你以使用者的身份去試驗一下openid:建立乙個openid賬號,然後用它去登入某個支援openid的**(比如stackoverflow.com)。如果你不喜歡這種體驗,或者如果你在我前面列出的批判中同意其中的一點(或者更多),請想一想:我們怎麼一起來解決呢?對於「登入**」問題,我們急切地需要乙個解決方案。但是在眼下,我看到的唯一有希望的只有openid(儘管它飽受非議)。

如果我們不能讓openid至少應用到一些低價值的一般性**上,我們對解決「登入**」問題還能抱有什麼希望呢?

倡議 我也利用blog做個倡議 用愛心捧起生命

關注造血幹細胞捐獻活動。這是一項拯救生命,而對自己傷害極小的公益活動。年長的朋友大概還記得 血疑 的幸子,關心新聞的朋友也許了解那個被一對善良的美國夫婦收養的小凱麗。她們都是白血病患者,幸子走了,多麼的不幸 而凱麗是幸運的,雖然這幸運苦等了三年,期間飽受了多少痛苦,誰又能知道呢?白血病是一種造血組織...

節約用電倡議 開放資料倡議可真實反映選舉過程

節約用電倡議 國家民主研究所已宣布啟動公開選舉資料倡議 該計畫的目標是確保公民團體能夠獲得能夠真實反映選舉過程的選舉資料,包括候選人如何獲得認證,選舉人的方式和登記方式,選舉日發生的事情,結果是否準確,以及如何解決投訴。該倡議得到了google的支援,它確定了公開選舉資料的9條原則 它應該是 及時 ...

倡議書格式范文 倡議書的格式及范文

約4430字。倡議書的格式及范文 概念 倡議書是為倡議 發起某項活動而寫的號召性的公開提議性的專用書信。格式 倡議書一般由標題 稱呼 正文 結尾 落款五部分組成。一 標題 倡議書標題一般由文種名獨自組成,即在第一行正中用較大的字型寫 倡議書 三個字。另外,標題還可以由倡議內容和文種名共同組成。如 把...