我试图了解如何将 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/