SOA:Rails 多个客户端的用户身份验证和 api 授权

Posted

技术标签:

【中文标题】SOA:Rails 多个客户端的用户身份验证和 api 授权【英文标题】:SOA: Rails user authentication and api authorization with multiple clients 【发布时间】:2015-08-08 20:21:44 【问题描述】:

我们如何允许第二个客户端对用户进行身份验证并访问我们的 api 授权后端?请更正我理解中不正确的部分。

用户身份验证是您应用的注册/登录/注销部分。 api 的应用授权正在确认您的应用有权访问 api。 用户应该登录到应用程序并且应该授权应用程序以便用户访问 api。

将用户身份验证与应用授权分开很重要,因为不同的客户端(应用)可能会通过我们的 api 访问我们的服务。因此,不同的用户可能具有不同的访问权限。

考虑一个简单的网络应用程序。带有设计的 Rails 在应用程序(api 客户端)中用于用户身份验证。然后,该应用程序使用门卫访问 rails-api 以进行应用程序授权。

然后考虑添加一个简单的移动应用。移动应用程序如何访问相同的用户身份验证服务?我们如何允许移动应用访问我们的用户授权服务?

我们是否需要使用单独的门卫实例将用户身份验证服务分离到自己的 api 中,以在创建用户之前授权移动应用程序和 Web 应用程序,然后在再次验证用户身份后授权应用程序和登录用户访问后端api?

我相信它应该比描述的更容易。任何资源、书籍、视频也很受欢迎。

【问题讨论】:

这个问题太宽泛了。 【参考方案1】:

如果我正确理解了您的问题,那么您正在寻找的是面向服务的身份验证。基本上,身份验证提供者可以使用 Devise + Doorkeeper。然后消费者可以使用omniauth-oauth2。

关于 oauth2 的好教程:https://www.youtube.com/watch?v=zTsyeMV-N0c Rails 具体实现:https://www.youtube.com/watch?v=L1B_HpCW8bs

干杯!

【讨论】:

以上是关于SOA:Rails 多个客户端的用户身份验证和 api 授权的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 2.0 中的 Windows 身份验证

RESTful WCF 4 服务中移动客户端的用户身份验证

具有多个身份验证源的JWT令牌

Rails 中的 Authorize.net - 由于身份验证值无效,用户身份验证失败

从令牌服务器(身份服务器 4)进行身份验证后重定向到客户端的相同 URL

移动客户端的asp.net Web Api自定义身份验证要求