Django管理+微服务架构中的身份验证系统

时间:2018-05-20 14:13:20

标签: django django-rest-framework django-admin microservices django-apps

我有一个大型 Django项目,它基本上是一个包含应用程序的整体。 我需要把它分解成微服务。

我有2个问题,我无法找到明确的答案:

  1. 目前我们广泛使用Django管理员,我想知道它是否已经过了 一旦整体破碎就可以继续使用它。它的意思是 读取和操作来自所有微服务的数据 工作" UI。这个过程也可以更顺利地完成。

  2. 身份验证和授权 - 我们仍然可以使用 这个内置的应用程序"在微服务架构中?可能吗 将此削减仅用于其他服务并与之通信 通过HTTP?

1 个答案:

答案 0 :(得分:0)

  

目前我们正在广泛使用Django管理员,我想知道一旦整体块被破坏,是否可以继续使用它。这意味着从"中的所有微服务中读取和操作数据。 UI。这个过程也可以更顺利地完成。

是的,你可以但它可能无法访问其他微服务数据库(既不写也不读)。这意味着如果Admin微服务更新某些文章(或您拥有的任何实体类型,这只是一个示例),那么这不会立即反映在显示该文章的微服务中。您需要有一些机制将更新从Admin传输到其他微服务。因此,共享数据库/表不是一种选择。

  

身份验证和授权 - 我们是否仍然可以使用此内置" app"在微服务架构中?是否可以将此削减仅用于其他服务并通过HTTP与其进行通信?

是的,但您需要将其分为两个方面。一方负责管理用户和角色/权限,另一方负责对用户进行身份验证,并检查用户是否可以执行某些操作。

第一方应该是微服务(创建/管理或用户以及角色/权限的管理)。

检查部分可以是微服务,但这些职责通常由API网关或每个需要身份验证或授权的微服务中的模块(+本地,复制数据)承担。这些都是贯穿各领域的问题。如果它们位于单独的微服务中,则存在弹性问题:如果微服务失败则会导致整个系统崩溃。