希望这不是太宽泛,但经过大量谷歌搜索后,我不知道从哪里开始。我正在寻找介绍性/新手概述来帮助我开始为 Rails 3 应用程序构建身份验证实现。
基本技术要求:
- Rails 3 应用程序托管在第三方服务 (heroku) 上
- 需要使用特定的外部私有SSO服务来对用户进行身份验证。
- Rails 应用程序中没有本地用户数据库或模型。
- 身份验证是基于令牌的,这意味着需要读取一个特殊的 cookie,将令牌传回 SSO 服务器(不是基于 Rails)。
- 我无法控制 SSO 服务器或基础设施。
- SSO 服务器的信任是隐式的,并且不希望维护用户、密码或敏感信息的本地数据库。用户信息仅在会话期间存在,并且 SSO 服务器具有权威性。
- 会话令牌信息基于 cookie,并在浏览器会话期间有效。
我正在寻找基本示例/教程/策略/说明,说明该过程如何在具有上述设置的 Rails 中工作。我希望该过程对于用户来说是无缝的,工作流程基本上如下所示:
- 导航到 Rails 应用程序 -->
- 将未经身份验证的用户重定向到 SSO 服务器 -->
- 通过远程 SSO 服务器登录并进行身份验证 -->
- 回调/重定向到 Rails 应用程序 -->
- 捕获从SSO服务器传回的用户信息并在rails应用程序中加载受保护的资源
策略完全是使用私有 SSO 资源自定义的,并且不使用已发布的身份验证机制(换句话说,不是 Facebook、Google、Twitter、OAuth 等)。
任何有关术语、连贯教程、示例的帮助将不胜感激。
编辑/更新:
更具体地说,我也在寻找如何创建omniauth自定义开发人员策略的良好文档。一些教程介绍了与任意 SSO 服务器通信、从 cookie 中读取令牌以及完成身份验证握手和回调/重定向所需的代码。
这并不是一个真正的答案,但我发布这个是因为评论是行不通的。我不知道有什么全面的指南,所以我建议您这样做:
了解 Omniauth 的工作原理。有一个很棒的铁路广播公司 http://railscasts.com/episodes/241-simple-omniauth关于使用 Twitter 进行身份验证。这真的很简单,它会让你顺其自然。
制定您自己的 Omniauth 策略。转到列表Omniauth 策略 https://github.com/intridea/omniauth/wiki/List-of-Strategies并滚动到开发者策略。在该表中,选择可用于连接到 SSO 服务器的策略。
理想情况下,您能够使用 OAuth2,并且有一些指南讨论如何实现您自己的 OAuth 策略:
- 连接 Rdio 的自定义 OAuth 1.0 策略 http://anti-pattern.com/adding-a-new-strategy-to-omniauth
- Intridea(Omniauth 的创建者)的自定义 OAuth 2.0 策略 https://github.com/intridea/omniauth-oauth2#creating-an-oauth2-strategy
- 通过 Heroku 连接到 Force.com 的自定义 OAuth 2.0 策略 https://devcenter.heroku.com/articles/omniauth-and-force-com
但既然你不能,那就快速浏览一下这些指南吧。如果没有任何具体细节,(对我来说)很难提供更多帮助,但希望其他人能够填写详细信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)