【问题标题】:Who creates the very first admin user in an event sourced system?谁在事件源系统中创建了第一个管理员用户?
【发布时间】:2016-06-21 07:46:22
【问题描述】:

使用事件溯源,一切都可以追溯到一开始,用户创建也是如此。在我们的系统中,我们通过公共 API 进行用户创建和管理工作。我们有一个(非常常见的)安全规则:只有管理员用户可以删除用户并向其他用户授予权限,即让他们成为管理员。

如果是 ES,您将如何在全新安装后立即配置系统?在进行沙盒集成测试时可能会出现这种情况。

抱歉这个相当哲学的问题:)

【问题讨论】:

  • 您不能只使用非安全内部命令处理程序之类的脚本吗?

标签: event-sourcing user-management


【解决方案1】:

谁授予root访问权限?

没有事件的事件源系统处于其初始状态,该状态不一定是空状态。

【讨论】:

  • 通常您需要在安装期间提供此类凭据。如果我查看其他服务,例如 mysql,我发现您需要在启动期间提供 ROOT 密码。类似的东西可以在启动期间引导,但听起来像是一个安全问题。
【解决方案2】:

您是说您需要一个默认管理员帐户才能创建其他帐户?如果是这样,只需在部署/配置过程中运行一个创建默认管理员的脚本

[更新]

您可以通过 HTTP http://docs.geteventstore.com/http-api/3.7.0/writing-to-a-stream 在 EventStore 中插入事件

【讨论】:

  • 所以脚本需要接入一些其他的域逻辑,因为普通域会检查创建用户是否有创建用户的权限。
  • @Pepster 是的,我会绕过正常的域检查代码,可能只是直接在数据库中添加一个管理员
  • 使用 ES,你需要为它有一个事件,然后查看可以相应更新的表。我想知道这是否可以通过一个脚本来完成。
  • 您可以通过 HTTP 或其中一个客户端插入事件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 2019-11-15
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多