将审计中间件添加到 keystonemiddleware¶
pyCADF 库包含中间件,可以启用对给定服务的 API 调用的审计。审计中间件利用由 auth_token 中间件提供的身份数据。
问题描述¶
审计与身份认证紧密相关,但目前审计中间件存在于 pyCADF 库中,而身份认证中间件包含在 openstack/keystonemiddleware 中。这要求部署者显式地引入多个依赖项。由于它们之间存在逻辑关联,因此应该相应地将中间件分组。
提议的变更¶
目前,审计中间件存在于 pyCADF 库中,建议的解决方案是将此中间件移动到 keystonemiddleware 中。此解决方案会引入对 oslo.messaging 的依赖,因为当前的审计中间件会将审计事件放置到消息队列中。它还依赖于 pyCADF 来生成审计事件。
备选方案¶
两种替代方案
保持现状。如果用户想要进行审计,他们应该引入 pyCADF 和
notifiermiddleware并添加审计中间件。从 pyCADF 引入审计中间件,但移除
oslo.messaging依赖。可以将通知委托给notifiermiddleware,但需要更改notifiermiddleware以正确审计请求和响应。
安全影响¶
无
通知影响¶
建议的解决方案将使中间件为每个 API 请求发送两个通知:一个用于请求,另一个用于响应。可以配置它以仅审计某些 API 请求(例如,仅 GET 请求)以最大程度地减少通知。
其他最终用户影响¶
用户需要从一个 python 包(keystonemiddleware.audit)中使用 audit 中间件。
文档将从 旧位置 移动到 keystonemiddleware 中的新位置。
性能影响¶
如果启用,这将给消息队列带来更大的负载。此审计过滤器是可选的。
其他部署者影响¶
如果启用,部署者需要在配置中间件的服务中启用通知。之后,他们可以按照文档中的描述将审计中间件添加到 WSGI 管道中。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
chungg
- 其他贡献者
无
工作项¶
将审计中间件移动到
keystonemiddleware并进行适当的代码更改以使其正常工作,同时在 pyCADF 中提供向后兼容性。更新
keystonemiddleware文档,以包含中间件配置文档。
依赖项¶
需要 pyCADF 和 oslo.messaging 库
文档影响¶
复制启用中间件的文档:https://docs.openstack.org/developer/pycadf/middleware.html
参考资料¶
无