使用Ruby On Rails进行SSO(单点登录)和ADFS(Active Directory联合身份验证服务)

时间:2015-05-18 23:16:32

标签: ruby-on-rails adfs

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

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

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

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

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

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

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

所以要获得你的Rails应用程序。要与ADFS交谈,它需要支持其中一种协议。

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

也许像ruby-saml

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

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

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

答案 1 :(得分:2)

阅读this优秀帖子。实用而清晰。

答案 2 :(得分:1)

如果您使用的是omniauth,或者您可以使用omniauth,请查看:https://github.com/highgroove/omniauth-saml-rstr

相关问题