【问题标题】:IdentityServer4 Architecture [closed]IdentityServer4架构[关闭]
【发布时间】:2020-04-23 11:29:05
【问题描述】:

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

我有一个单独的用于 identityserver4 的服务器,为所有用户表(asp.net 核心身份表)提供一个单独的数据库。 我有一个 MVC 客户端,它有一个单独的数据库,其中包含名为 Accounts 的表,该表保存来自 identityserver4 的用户 ID

我需要做用户管理的事情我被两种情况困住了

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

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

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

【问题讨论】:

    标签: asp.net-core oauth-2.0 identityserver4 openid-connect


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的重播。无论架构是什么,我都是从安全的角度询问最佳实践
    • 我认为这两个选项在安全方面都足够好如果它们实施得当。这是相当架构问题,服务应该如何通信 - 如果通过数据库或通过 API。这两种解决方案都可能存在安全威胁。
    猜你喜欢
    • 2017-09-09
    • 2022-01-23
    • 2011-04-01
    • 2012-11-18
    • 1970-01-01
    • 2010-09-12
    • 2018-01-27
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多