Google Apps Account as OpenID (中文)

5,282 views
5,162 views

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,282
On SlideShare
0
From Embeds
0
Number of Embeds
337
Actions
Shares
0
Downloads
19
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Google Apps Account as OpenID (中文)

  1. 1. Google Apps 帳號 OpenID 化 Timothy Chien http://blog.timc.idv.tw/ timdream@gmail.com 2010-10-31
  2. 2. Google 帳號的 OpenID 化  很久以前就推出的功能  使用者可以複製貼上下列網址 https://www.google.com/accounts/o8/id 當作 OpenID 來登入任何 RP 網站 – RP 會辨識 (discovery) 出它是伺服器端點(不是 使用者個人網址),接著啟動 id_select 登入程 序 – 使用者的個人 OpenID 網址會長的像這樣 https://www.google.com/accounts/o8/id? id=AItOwk...nqJOSI
  3. 3. Google 帳號的 OpenID 化 <?xml version="1.0" encoding="UTF-8"?> <xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"> <XRD> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/server</Type> <Type>http://openid.net/srv/ax/1.0</Type> <Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type> <Type>http://specs.openid.net/extensions/ui/1.0/icon</Type> <Type>http://specs.openid.net/extensions/pape/1.0</Type> <URI>https://www.google.com/accounts/o8/ud</URI> </Service> </XRD> </xrds:XRDS>
  4. 4. 「 id_select 」登入程序?  OpenID 2.0 新推出 * 的功能 – 說新,其實也是 2007 年的事情了  代表使用者想要用某個特定的 OpenID 帳號 提供者 (IdP) ,但他不知道/不說他的個人 OpenID 網址。  因此「 id_select 」登入程序會請 OpenID IdP 自行指定該使用者的 OpenID 網址  另外一種以前就有的稱為「 signon 」登入程 序
  5. 5. Apps 的 OpenID 伺服器端點辨識  用這個 https://www.google.com/accounts/o8/site-xrds?hd= 來作為登入 RP 的網址 – 使用者會被發給下列形式的 OpenID 個人網址 http://example.com/openid?id=1234567890 – 該網域要在此網址底下提供辨識資訊,讓 RP 確 定 Google 沒有說謊
  6. 6. 使用者端點辨識資訊  在 Google 的文件有詳細的說明 – http://sites.google.com/site/oauthgoog/fedloginint erp/openiddiscovery – 它甚至說 XRDS 檔案要有簽名驗證!  我做了產生這些 XRDS 的 PHP 程式 – http://github.com/timdream/google-apps-openid – 可以用,但是 XRDS 沒有做簽名驗證 – 而且為了跑這個 PHP 還租台主機來架,違背了 Google Apps 的初衷
  7. 7. 使用者端點辨識資訊 <?xml version="1.0" encoding="UTF-8"?> <xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"> <XRD> <CanonicalID>http://example.com/openid?id=1234567890</CanonicalID> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/signon</Type> <Type>http://openid.net/srv/ax/1.0</Type> <Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type> <Type>http://specs.openid.net/extensions/ui/1.0/icon</Type> <Type>http://specs.openid.net/extensions/pape/1.0</Type> <URI>https://www.google.com/a/example.com/o8/ud?be=o8</URI> </Service> </XRD> </xrds:XRDS>
  8. 8. Google 對於代管網域的端點辨識提議  新規格,跟一個放在「 /.well-known/host-meta 」的 新檔案有關  現有的 OpenID 生態系尚不支援,除非你架設 RP 的時候把 library 用 Google 寫的 extension 做 patch – http://code.google.com/googleapps/marketplace/sso.html#g s  應該沒有解決「 Google 可能會說謊」這個問題
  9. 9. 使用者介面  盡量啟動「 id_select 」登入程序 – OpenID 個人網址對一般使用者可能沒有意義 – 輸入帳號之後再到下一個畫面輸入密碼很怪  可能的 UI – 「輸入您的 E-mail 後繼續」 – 按鈕  小心「 NASCAR 效應」
  10. 10. example.com/jsmith jsmith@example.com example.com jsmith.example.com
  11. 11. Q&A

×