【发布时间】:2017-08-14 10:03:32
【问题描述】:
我现在正在尝试将单体应用程序分离为微服务(专用 Rails 应用程序)并想知道 - 是否有解决方案可以将授权服务从每个服务中移出?
例如,我有 6 个不同的 Rails API 服务,它们带有用于身份验证的用户模型的“knock”gem。 所有这些服务共享一个用户数据库。
我想用用户模型实现专用服务,但是其他服务如何使用给定令牌验证用户?
我还希望能够控制用户可以使用和不可以使用的服务。那么应该有AccessRole服务吧?
案例草案:
- 用户转到“文章”(前端 UI 客户端)
- auth_service 正在验证来自客户端的令牌
- access_service 以某种方式从 auth_service 收到消息,并验证用户的角色以访问“文章”资源。
- articles_service 使用 json 数据向客户端发送响应。
这里还有一些问题:
- access_service 将如何与 auth_service 通信?他们是否应该使用一个用户数据库来验证用户的凭据和角色?
- articles_service 等等 - 它们是否应该成为无法访问公共的私有服务并充当用户的黑匣子?
【问题讨论】:
标签: ruby-on-rails ruby jwt microservices