适用于noob的Rails身份验证策略

时间:2013-01-17 20:30:10

标签: ruby-on-rails authentication single-sign-on omniauth access-token

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

基本技术要求:

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

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


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

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

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

修改/更新

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

1 个答案:

答案 0 :(得分:1)

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

  1. 了解Omniauth的工作原理。关于使用Twitter的身份验证有一个很棒的Railscast。它非常简单,它会让你了解事物。

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

  3. 理想情况下,您可以使用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
    4. 但是既然你做不到,那就快点看看那些指南吧。没有任何细节,给我们提供更多帮助是很困难的(但对我来说),但希望其他人会填写详细信息。

相关问题