如何将 Rails 客户端连接到 IndentityServer SSO 提供商
How to Connect Rails Client to IndentityServer SSO provider
在工作中,我们有一个系统设置 运行 一个 ThinkTecture IndentityServer SSO 提供程序,它目前为多个 .NET 和 ColdFusion 站点提供身份验证。我目前正在开发一个我们在 Ruby on Rails 支持的新网站,但我很难弄清楚如何将它连接到 SSO。 (我是 rails 的新手,但我是 CF 和 .NET 的长期开发人员)
我查看了 omniauth-oauth2 和 oauth2 gem,但我能找到的文档和解释中似乎缺少重要部分。如果我想使用 Twitter、Facebook 或类似的东西进行身份验证,有大量信息,但我找不到任何仅针对任何通用 OAuth2 提供程序的客户端的信息。
我只是在找人为我指明正确的方向,以查找有关如何执行此操作的信息。我不在乎它是特定于 IdentityServer 还是只是通用的,而不管提供者如何。感谢您的帮助。
更新:如你所知,我更愿意使用 OAuth2 进行此连接,但我不反对使用 IdentityServer 提供的任何其他方式,包括 ADFS 、WSFed 或简单 HTTP。不过,我不能使用 OpenID,因为这些帐户是我们系统特有的,不能用于其他系统。
你真的需要一个开放的id连接库。
事实证明,总的来说这很容易。困难在于这个问题没有直接的答案。如何连接到 IdentityServer 完全取决于 IdentityServer 的设置方式。
我不会 post 我的确切代码,因为这对没有像我们一样设置 IdentityServer 的人没有帮助,因为我无权访问IdentityServer,我不能确切地说它是怎么回事。不过,我将解释整体解决方案。
- 唯一需要的 gem 是 JWT
- 从 IdentityServer 管理员获取密钥代码(客户端 ID、密钥、签名密钥)
- 根据IdentityServer
的配置建立登录URL
- 将用户重定向到上一步生成的登录路径
- 从 IdentityServer 接收令牌
- 使用JWT.decode函数解码验证
从那里你只有一个 JSON 字符串和你的数据。
在工作中,我们有一个系统设置 运行 一个 ThinkTecture IndentityServer SSO 提供程序,它目前为多个 .NET 和 ColdFusion 站点提供身份验证。我目前正在开发一个我们在 Ruby on Rails 支持的新网站,但我很难弄清楚如何将它连接到 SSO。 (我是 rails 的新手,但我是 CF 和 .NET 的长期开发人员)
我查看了 omniauth-oauth2 和 oauth2 gem,但我能找到的文档和解释中似乎缺少重要部分。如果我想使用 Twitter、Facebook 或类似的东西进行身份验证,有大量信息,但我找不到任何仅针对任何通用 OAuth2 提供程序的客户端的信息。
我只是在找人为我指明正确的方向,以查找有关如何执行此操作的信息。我不在乎它是特定于 IdentityServer 还是只是通用的,而不管提供者如何。感谢您的帮助。
更新:如你所知,我更愿意使用 OAuth2 进行此连接,但我不反对使用 IdentityServer 提供的任何其他方式,包括 ADFS 、WSFed 或简单 HTTP。不过,我不能使用 OpenID,因为这些帐户是我们系统特有的,不能用于其他系统。
你真的需要一个开放的id连接库。
事实证明,总的来说这很容易。困难在于这个问题没有直接的答案。如何连接到 IdentityServer 完全取决于 IdentityServer 的设置方式。
我不会 post 我的确切代码,因为这对没有像我们一样设置 IdentityServer 的人没有帮助,因为我无权访问IdentityServer,我不能确切地说它是怎么回事。不过,我将解释整体解决方案。
- 唯一需要的 gem 是 JWT
- 从 IdentityServer 管理员获取密钥代码(客户端 ID、密钥、签名密钥)
- 根据IdentityServer 的配置建立登录URL
- 将用户重定向到上一步生成的登录路径
- 从 IdentityServer 接收令牌
- 使用JWT.decode函数解码验证
从那里你只有一个 JSON 字符串和你的数据。