用于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握手和回调/重定向。
这不是一个真正的答案,但我发布这个是因为评论不会这样做。 我不知道任何全面的指南,所以这里是我建议你做的:
-
了解Omniauth的工作原理。 有一个关于使用Twitter进行身份validation的Railscast 。 它非常简单,它将让你了解事物的流程。
-
建立自己的Omniauth战略。 转到Omniauth Strategies列表并滚动到Developer Strategies 。 在该表中,选择可用于连接SSO服务器的策略。
理想情况下,您可以使用OAuth2,并且有一些指南可以讨论如何实现您自己的OAuth策略:
- 自定义OAuth 1.0策略以连接到Rdio
- Intridea(Omniauth的创建者)的自定义OAuth 2.0策略
- 通过Heroku连接到Force.com的自定义OAuth 2.0策略
但既然你做不到,那就快点看看那些指南吧。 没有任何细节,给我们提供更多的帮助是很困难的,但希望其他人会填写细节。
- Omniauth Facebook重定向到注册屏幕而不是创建用户
- Rails 5设计omniauth-facebook错误:抱歉,出了点问题
- puma生产服务器在后台:omniauth记录到stdout失败导致错误
- LinkedIn photo_urls或picture-urls ::(原创)未被退回
- Mendeley定制OAuth战略
- 如何在Ruby on Rails应用程序中拯救OAuth :: Unauthorizedexception?
- Devise,OmniAuth和Facebook:“没找到。 身份validationpassthru。“
- Devise中的ArgumentError :: RegistrationsController#新错误的参数个数(2个为0..1)
- 为什么我在前2位用户之后收到“此授权码已被使用”?