用于noob的Rails身份validation策略

希望这不是太广泛,但经过大量的谷歌搜索,我不知道从哪里开始。 我正在寻找介绍性/ noob概述,以帮助我开始构建rails 3应用程序的身份validation实现。

基本技术要求:

  • Rails 3应用程序托管在第三方服务(heroku)上
  • 需要使用特定的外部私有SSO服务来validation用户。
  • rails应用程序中没有本地用户数据库或模型。
  • 身份validation是基于令牌的,这意味着需要读取一个特殊的cookie,将令牌传递回SSO服务器(而不是基于rails)。
  • 我无法控制SSO服务器或基础架构。
  • SSO服务器的信任是隐式的,不希望维护用户,密码或敏感信息的本地数据库。 用户信息仅在会话期间存在且SSO服务器具有权威性。
  • 会话令牌信息是基于cookie的,并且在浏览器会话期间存在。

我正在寻找基本的示例/教程/策略/解释,通过上述设置,该过程如何在rails中工作。 我希望这个过程对于用户来说是无缝的,工作流基本上是这样的:


  • 导航到rails app – >
  • 将未经身份validation的用户重定向到SSO服务器 – >
  • 通过远程SSO服务器登录和validation – >
  • 回调/重定向到rails app – >
  • 捕获从SSO服务器传回的用户信息,并在rails app中加载受保护的资源

策略完全是使用私有SSO资源自定义的,并且不使用良好发布的身份validation机制(换言之,不是Facebook,Google,Twitter,OAuth等)。

任何有关术语,连贯的教程,示例的帮助将不胜感激。

编辑/更新:

更具体地说,我也在寻找如何创建omniauth自定义开发人员策略的良好文档。 一些教程介绍了与任意SSO服务器通信所需的代码类型,从cookie中读取令牌,以及完成身份validation握手和回调/重定向。

这不是一个真正的答案,但我发布这个是因为评论不会这样做。 我不知道任何全面的指南,所以这里是我建议你做的:

  1. 了解Omniauth的工作原理。 有一个关于使用Twitter进行身份validation的Railscast 。 它非常简单,它将让你了解事物的流程。

  2. 建立自己的Omniauth战略。 转到Omniauth Strategies列表并滚动到Developer Strategies 。 在该表中,选择可用于连接SSO服务器的策略。

理想情况下,您可以使用OAuth2,并且有一些指南可以讨论如何实现您自己的OAuth策略:

  1. 自定义OAuth 1.0策略以连接到Rdio
  2. Intridea(Omniauth的创建者)的自定义OAuth 2.0策略
  3. 通过Heroku连接到Force.com的自定义OAuth 2.0策略

但既然你做不到,那就快点看看那些指南吧。 没有任何细节,给我们提供更多的帮助是很困难的,但希望其他人会填写细节。