如何利用oauth为微服务应用程序实施SSO

时间:2015-07-18 17:03:48

标签: ruby-on-rails ruby oauth-2.0 single-sign-on microservices

我们希望在微服务应用之间建立SSO,

例如:在电子商务网站中,如果用户登录主应用程序,则应自动允许用户访问与其连接的购物车应用程序,这是一项微服务。

我搜索了Oauth规范,但我可以找到针对我的案例的任何相关答案。 一些与Oauth不同的事情是

  • 用户无需针对Identify provider授权资源(购物车应用)。应在后端无缝完成。
  • 我们不想使用外部识别提供商,如facebook,google,主应用程序(例如上面)应该充当身份提供者。

问题

1.在oauth中有一个标准的方法(程序)来处理这种认证/授权。?

  1. 如果不是最受欢迎的替代品?
  2. 其他信息: 我们的应用程序是使用Ruby on Rails构建的,如果您知道任何好的宝石,请建议。

    我发现了与此相关的几个问题(12),但它们更广泛。即使谷歌也没有帮助,所以请不要将此问题标记为重复。

1 个答案:

答案 0 :(得分:0)

如果您确实想要使用SSO,请让所有服务接受由用户登录时由授权服务器返回的相同令牌。例如,加密并放入cookie - 在这种情况下,您的Web前端将通过验证该用户来验证用户身份针对授权服务器的令牌并返回特定于用户的内容。

这同样适用于购物车服务 - 它可以通过令牌获取用户名并返回特定于用户的购物车项目。

优点:用户无法通过设计访问其他用户的数据,用户注销会禁用每项服务。

缺点:您需要“超级用户”或其他API用于后台或分析任务。