ruby-on-rails - 使用 Ruby On Rails 的 SSO(单点登录)和 ADFS(Active Directory 联合服务)

标签 ruby-on-rails adfs

我试图了解如何将 SSO(单点登录)和 ADFS(Active Directory 联合服务)集成到由 nginx 服务的 Linux 环境托管的现有 Ruby On Rails 应用程序中。

考虑合作伙伴(使用 Active record 目录的公司)和服务提供商(rails 应用程序)。

服务提供商 Web 服务器似乎必须运行 ADFS Web 代理,该代理将处理与合作伙伴的身份验证过程,并最终使用 token 将用户重定向到 Rails 应用程序,并使用一个声明来识别用户该应用程序。

我主要关心的是这个 ADFS Web 代理:

我是否正确理解它必须在服务提供商端运行?(我对合作伙伴端不感兴趣)。如果是这样,将 ADFS SSO 与 Linux 操作系统上由 nginx 提供服务的应用程序集成的最佳方式是什么?我需要运行联合服务器的 Windows 服务器吗?

预先感谢您的帮助!

最佳答案

ADFS 处理两种协议(protocol) - WS-Fed 和 SAML。 ADFS 3.0 处理 OAuth 2.0 中的授权代码授予(但不处理 OpenID Connect),

所以要获取您的 Rails 应用程序。要与 ADFS 通信,它需要支持其中一种协议(protocol)。

如果它能做到这一点,就不需要任何其他服务器。

也许类似于 ruby-saml .

看这里:SAML 2.0 SSO for Ruby on Rails?

另一种方法是使用 OAuth/REST 访问某个中间联合服务器,然后通过 SAML/WS-Fed 输出另一端。

Auth0 和 Ping-Federate 支持这种方法。

关于ruby-on-rails - 使用 Ruby On Rails 的 SSO(单点登录)和 ADFS(Active Directory 联合服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30314255/

相关文章:

ruby-on-rails - 事件模型 : different validation messages per view

ruby-on-rails - rails 4.2 : Rake Task to Import CSV Issue

ruby-on-rails - 如何使用 Draper 0.14.0 访问装饰器规范文件中的辅助方法

asp.net-mvc - 将角色添加到 ADFS IPrincipal

adfs - ADFS 中的主动联合和被动联合有什么区别?

java - Liferay/Java 通过 ADFS 自定义登录

ruby-on-rails - Json.jbuilder合并2个json数据并发送给一个key

jquery - 如何在 Rails 上启用 Turbolinks 的情况下通过 AJAX 正确渲染部分内容?

authentication - 使用 OAuth 和持久刷新 token 的 ADFS 3.0

azure - 使用客户的 Active Directory(Azure 或 ADFS)对 UWP 客户端和 .Net Core Web 应用程序进行身份验证