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。所以这是一个黑匣子。啊! –