IdentityServer4架构

IdentityServer4 Architecture

我已经将我的 asp.net 核心应用程序与 identityserver4 集成并成功验证和授权用户,我现在的架构如下:

我有一个单独的 identityserver4 服务器和一个单独的数据库供所有用户 tables(asp.net 核心身份 tables)。 我有一个 MVC 客户端,它有一个单独的数据库 table 称为 Accounts,它保存来自 identityserver4

的用户 ID

我需要做一些用户管理的事情我遇到了两种情况

1- 从客户端 MVC 应用程序创建、删除、更新帐户,并在身份服务器上创建一个 API 以反映在 table 用户

2- 允许客户端 MVC 应用使用 identityserver4 访问身份数据库并直接进行用户管理

那么,最好的架构是什么?一个用于 identityserver4 和 MVC 客户端的共享数据库,或者一个用于 identityserver4 的单独数据库和另一个用于 MVC 客户端的数据库?

我更喜欢第一个选项。但这取决于上下文和要求。如果您正在创建一个在一段时间后可能会更大的未开发项目(其中将包含更多服务),那么我建议您尝试微服务架构。

微服务的扩展性通常比单体应用好得多,但架构和整体技术堆栈可能更复杂。关键是它们是独立的——所以它们不共享任何东西,根本不共享数据库。它伴随着其他问题,例如同步数据库。免费电子书对此进行了详细描述:NET Microservices: Architecture for Containerized .NET Applications (here or here,但您还应阅读其他页面)。

如果您打算只创建可能属于非微服务生态系统一部分的小型服务,则 2. 选择可能更好。