[OAuth Series] OAuth 的服務實作 ... 動念

OAuth 的服務實作 ... 動念中。

前陣子瘋狂的寫出了 EasyOAuth Framework for Desktop and Web Application 元件後,突然有人詢問說會不會有開發 OAuth 服務的元件,這點令我有點吃驚,因為 OAuth (不論是 v1.0a 或是 2.0) 在國內外大多只有大型社群網站使用,諸如 Google, Facebook, Twitter, Plurk, Linked In 或是 Dropbox 等,而且都是附屬於其龐大的 REST API 之下的一個驗證與授權服務,一般的入口網站或是小型社群理論上是不太可能需要開發 OAuth 服務的,所以一開始我本來就沒有打算要開發 OAuth Service 這一塊,網路上大多數的需求也都是集中在 OAuth Client 部份的開發。

不過也許是有些開發 HTTP 服務的廠商有這樣的需求,他們的網站或 Internet 系統有大量的 API 可以使用,且也已經有了一些認證機制 (ex: 會員帳戶密碼),但卻無法或不知如何實作 OAuth Service,因此,我才開始有這樣的想法,把一些 OAuth Service 服務開發的部份撰寫並組織成像 EasyOAuth Framework 如此容易使用的方式,讓 OAuth 可以有更多的 Internet 服務廠商採用,這樣做 SSO 時也有更多的外部認證供應商可以選擇了。

目前想到的 OAuth Service 的部份,主要依據 OAuth v1.0a 的規格,實作下列功能:

  • REST-style API 入口,且 OAuth 認證部份是獨立的 API。
  • 產生 consumer key 與 secret。
  • 驗證 OAuth signature 是否合法。
  • 檢查 OAuth request 是否有 flood 的潛在威脅。
  • 重導向 User authorization 入口。
  • 產生 OAuth Verifier。
  • 產生 OAuth Access Token。
  • 支援 Desktop 與 Web 應用程式。

不過一切都還是動念與計畫的狀態,何時會真正出爐,時程未知。