6

希望這不是太寬泛,但經過大量的谷歌搜索,我不知道從哪裏開始。我正在尋找介紹性/新手概述,以幫助我開始構建用於rails 3應用程序的身份驗證實現。noob的Rails身份驗證策略

基本技術要求:

  • 的Rails 3應用程序託管在第三方服務(Heroku的)
  • 需要使用特定的外部私人SSO服務驗證用戶身份。
  • 在rails應用程序中沒有本地用戶數據庫或模型。
  • 認證是基於標記的,意思是說有一個特殊的cookie需要讀取回傳令牌給SSO服務器(不是基於導軌)。
  • 我無法控制SSO服務器或基礎結構。
  • SSO服務器的信任是隱含的,不想維護用戶,密碼或敏感信息的本地數據庫。用戶信息僅在會話期間存在,並且SSO服務器具有權威性。
  • 會話令牌信息基於Cookie,並在瀏覽器會話期間存在。

我在尋找的過程如何將在軌工作,與上面的設置基本的例子/教程/策略/解釋。我想的過程中與工作流程的用戶,基本上看起來像這樣是無縫的:


  • 導航到Rails應用程序 - >
  • 未經身份驗證的用戶重定向到SSO服務器 - >
  • 登錄並通過遠程SSO服務器進行身份驗證 - >
  • 回調/重定向到Rails應用程序 - >
  • 捕捉用戶信息傳遞從SSO服務器回來,在Rails應用程序
  • 負載受保護資源

策略是完全自定義的使用私有SSO資源,不使用以及公佈的權威性機構的(換句話說沒有Facebook,谷歌,Twitter的,OAuth的,等等)。

任何有關術語,連貫教程,示例的幫助將不勝感激。

編輯/更新:

更具體地講,我也在尋找好的文檔如何創建自定義的omniauth開發戰略。一些教程介紹了與任意SSO服務器通信所需的代碼類型,從cookie中讀取一個令牌,並完成身份驗證握手和回調/重定向。

回答

1

這不是一個真正的答案,但我張貼這是因爲評論不會做。我不知道任何綜合指南,所以這裏是我建議你做的:

  1. 瞭解Omniauth的工作原理。關於使用Twitter進行身份驗證有很好的Railscast。這非常簡單,它會讓你處於事物的流動中。

  2. 構建您自己的Omniauth策略。轉到Omniauth Strategies的列表並滾動到開發者策略。在該表中,選擇可用於連接到SSO服務器的策略。

理想情況下,你可以使用的OAuth2並且有談實現自己的OAuth策略一些輔助線:

  1. Custom OAuth 1.0 strategy to connect to Rdio
  2. Custom OAuth 2.0 strategy by Intridea (the creators of Omniauth)
  3. Custom OAuth 2.0 strategy to connect to Force.com by Heroku

但是既然你不能,那就快點看一下那些指南。沒有任何細節,對我來說有點難(給我更多幫助),但希望其他人填寫細節。

+0

感謝您的聯繫。我一直在做這個,學習更多關於omniauth的知識。問題是我必須建立一些相當自定義的東西。沒有一種可用的策略與我必須使用的環境完美匹配。特別是我正在尋找一些示例,解釋如何從cookie中讀取令牌並將其發送回SSO服務器。不幸的是,我正在處理一個未公開的API。所以這是一個黑匣子。啊! –