Yahoo 的 OpenID 還要再加把勁兒

2008 年 八月 13 日 (星期三) 2:30 am
分類:電腦
標籤:, , , ,

我在〈Yahoo 也加入開放 API 的戰局〉一文提過,Yahoo 提供兩種 single sign-on (SSO) 機制:自家的 BBAuth 專屬機制,以及 OpenID 開放標準(還宣稱支援到 2.0 版)。如今半年過去了,正好看到〈Yahoo! 奇摩第四季推 OpenID 正式版〉報導,便一時興起,試看看這兩種 SSO 機制好不好用。

實驗之後,感想是:Yahoo 對於開放標準的輕忽,對於網路新興使用行為的漠視,都應該有所改進。

以 BBAuth 而言,登入認證完畢,我們只能從 Yahoo 取得一個長得像「3×45Bp52Mfle9tI1YAA-」的 “userhash”。這玩意兒的官方說法是:

the Yahoo! login server includes an unique identifier for a particular user in your endpoint URL. With the userhash you can identify a returning user [...] The identifier is bound to a specific appid.

可是它有幾個缺點:

  1. 毫無辨識性:你看得出「3×45Bp52Mfle9tI1YAA-」這一串符號背後的任何意義嗎?
  2. Yahoo 也不提供 API 讓我們透過它(以及 token)去進一步查詢 user profile [註],即使這個帳號擁有者早已在 Yahoo「會員公開檔案」後台授權開放部份個人資料(譬如:暱稱、個人網頁、自我介紹……)。
  3. 更嚴重的是:這個 “userhash” 還會隨著 application ID 變動而變動,而 application ID 又會隨著 endpoint URL 變動而變動。換句話說,只要後兩者一有變動,舊的 userhash 就完全失效,無法如官方所宣稱的 “With the userhash you can identify a returning user”。

BBAuth 的 “userhash” 限制如此之多,難怪地圖日記產品經理吳伯毅會如此評論

雖然擁有 Yahoo! 奇摩這個品牌背書,但衍生的缺點卻是地圖日記無法確實掌握使用者的詳細資料,他開玩笑說,「畢竟魚與熊掌不能兼得囉。」

User profile 完全被 BBAuth 漠視。

反觀 OpenID,打從骨子裡就很有 user profile 意識,又是開放標準,所以像 myOpenIDVeriSign 等 OpenID provider 大廠,登入認證完畢,consumer 都可順利取得 OpenID Simple Registation 所定義的幾種個人資料(譬如:全名、暱稱、email……)。

對於 OpenID,Yahoo 又有什麼樣的表現呢?

很遺憾的,上述個人資料完全闕如。這表示:不但漠視 user profile、data portability 等網路新興使用行為,更輕忽 OpenID 開放標準。

Aristotle Balogh 七月來台時曾豪氣干雲宣示:「我們將解開社交網路的枷鎖!」我們也希望 Yahoo 能再多加把勁兒,而且……請先解開自家 API 的枷鎖吧。

﹝註﹞

本文發表後,感謝 smallufo提醒,透過 Yahoo! Mail API 即可讀取部份 user profile。我的回應是:

透過 UserSendPref 的確可以取得更多帳號資料(像 defaultIDloggedInAliasfirstNamelastName 都很好用)。不過這又有點兒過頭了:Yahoo 的 Mail API 可是具有讀寫權力的呀,帳戶擁有者似乎也沒有辦法只授權部份權力給 consumer 網站使用,太 coase-grained 了。

更可怕的是:不管 consumer 是透過 (1) 單純的 BBAuth、還是 (2) 再加上 Mail API 去進行 SSO 登入認證,Yahoo 秀給使用者看的「自動登入服務條款」大體而言還是同一份,也沒有明確告知 Yahoo 將開放多少權限給 consumer;這等於是將使用者曝於更危險的情境。

我還是傾向於將這帳號資料讀取權力放在 BBAuth 和 OpenID 裡。

延伸閱讀


◤建議您一併閱讀以下文章:

3 項留言回應 給 “Yahoo 的 OpenID 還要再加把勁兒”

  1. 1 clkao 留言:

    BBAuth is more like what OAuth is trying to do, so identity issues aren’t really what it is trying to solve.

    As for Yahoo’s OpenID, which is actually quite a driver for the much-improved 2.0 (imho the id_selector thing is the most important one)… in terms of email and other info, they are defined as the sreg extension, which is up to the OP to provide, due to privacy consideration…. I do agree Yahoo should have options for users consent sreg requests from OpenID RP, but it’s not an issue of the openid standard itself, and I’d rather not accuse them for ignoring standards.

  2. 2 william 留言:

    @clkao:

    先謝謝你的回應。

    對於 BBAuth,既然這是 Yahoo 自己的專屬協定,愛開放多少,其實外人是沒什麼權力要求的;頂多是選擇要不用採用而已。

    問題是,對於 OpenID 這個已經是開放標準,而且早有業界經驗可循的先例,Yahoo 顯然做得還不夠:

    1. 我在 Yahoo「會員公開檔案」後台。早已授權開放部份個人資料(譬如:暱稱、個人網頁)。我本來就預期 Yahoo 公開的 API,會認可我所授權開放的範圍。
    2. 既然 OpenID 有提供 SReg 管道讓 consumer 進一步查詢 identity 資訊,而且這也是 OpenID 業界經驗的普遍行為,Yahoo 應該尊重這種標準以及慣例。

    再對照今天自由時報〈申設公共金鑰終結混「帳」〉的報導:

    對於尚無法「一卡走遍天下」,台灣奇摩雅虎科技研發工程部資深經理簡西村表示,目前提供 OpenID 用意,僅是希望 Yahoo 的用戶可以 OpenID 註冊、用比較安全的方式試用新興網站,至於能否滿足網友的需求,就讓網友自行去評斷了。

    我真的覺得,Yahoo 的 OpenID 應該要更努力一點,做個表率。

  3. 3 william 留言:

    剛剛用 Yadis 查了一下,Yahoo 的 OpenID 居然只提供兩種服務:

    說實在的,真是有點少呀。

留言回應

[檢核碼]  


Allowed XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

本站已啟用 spam 防護機制。為避免系統誤判,請在按下按鈕之前,先備份您的留言,以防不測。如果您一直無法順利留言,請改用 email 方式。
此外,如果您想留的言與本篇文章及討論串無關,也請轉而點選這裡。謝謝您!