希望这不是太宽泛,但经过大量谷歌搜索后,我不确定从哪里开始。我正在寻找介绍性/新手概述,以帮助我开始为 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 中读取令牌以及完成身份验证握手和回调/重定向所需的代码。