【发布时间】:2013-01-01 11:50:51
【问题描述】:
希望这不是太宽泛,但经过大量谷歌搜索后,我不确定从哪里开始。我正在寻找介绍性/新手概述,以帮助我开始为 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 等)。
任何有关术语、连贯教程、示例的帮助将不胜感激。
编辑/更新:
更具体地说,我还在寻找如何创建全域身份验证自定义开发者策略的优秀文档。一些教程介绍了与任意 SSO 服务器通信、从 cookie 中读取令牌以及完成身份验证握手和回调/重定向所需的代码。
【问题讨论】:
标签: ruby-on-rails authentication single-sign-on omniauth access-token