为 Discourse Events REST 端点添加细粒度 API 密钥权限范围

Discourse Events 在 /discourse-post-event/... 路径下公开了多个 REST 端点,但在创建具有细粒度(Granular)权限范围的管理员 API 密钥时,似乎没有专门针对 Events 的权限范围。

目前已经存在一个用于日历订阅源(如 ICS 端点)的 discourse-calendar:events_calendar 用户 API 密钥权限范围,因此本请求专门针对细粒度的管理员/服务器到服务器 REST API 密钥,而非日历订阅密钥。

使用场景

外部集成可能只需要查询 Discourse Events——例如,检查某个事件是否存在或获取事件信息。

目前,似乎没有办法颁发一个专门限制在 Discourse Events REST 端点上的管理员 API 密钥。这意味着集成可能需要被授予比实际所需更广泛的 API 权限范围。

如果 discourse-events 能为其 REST 路由注册细粒度的 API 密钥权限范围,将有助于集成遵循最小权限原则。

理想情况下,这些权限范围可以区分不同的操作,例如:

  • 读取/查询事件
  • 管理事件
  • 管理事件受邀者

即使最初只提供一个只读的 Events 权限范围也会很有用。

一份最近的相关报告也指出,在尝试使用细粒度 API 密钥权限范围时,没有发现针对 Events 端点的明显限制选项。

尽管插件本身现在已更名为 discourse-events,但现有的 Events 路由为了兼容性仍保留了 /discourse-post-event/... URL 命名空间,因此我认为权限范围不一定需要使用旧的插件名称。

我目前没有时间为此准备一个 PR,但我想将其作为一个功能请求提出,以防这对其他集成也有用,或者适合作为 pr-welcome 的变更。

2 个赞