【问题标题】:Capturing audit trail information via REST通过 REST 捕获审计跟踪信息
【发布时间】:2015-01-23 12:41:52
【问题描述】:

我正在努力寻找通过 REST 服务捕获审计信息的“正确”方式。假设我有一个用于 Employee 资源的内部 REST API。我想在添加/修改/删除员工时捕获一些东西,例如进行更改的用户、用户正在使用的应用程序、完成时间(假设这可能是异步的,因此用户的操作可能发生在与 REST 调用不同的时间)等。此外,发起更改的用户可能不是进行 REST 调用的经过身份验证的用户。

我的想法是这些属性不属于请求的主体 - 这意味着它们不是 Employee 对象的属性。它们不是可以在 GET 上检索和返回的东西,因此它们不应该在 POST/PUT 中。它们也不属于参数,因为参数应该用于指定有关员工的其他内容或针对员工的 GET 请求的搜索/过滤条件。

我目前的想法是让客户端在 HTTP 标头中指定此信息。这使 Employee 资源的 URL 参数和正文保持纯净。这是对标题的适当使用吗?还有其他我没有看到的选项吗?

【问题讨论】:

    标签: rest http-headers restful-architecture audit audit-trail


    【解决方案1】:

    我正在处理一个问题非常相似的项目,我们最终确实使用 HTTP 标头来跟踪审计信息。实际上,这是需要指定客户端用户和应用程序的授权标头的副产品,我们在 REST 服务中使用此信息将详细信息存储在审核日志中。

    在您的情况下,我认为添加自定义 X 标头以指定发出请求的原始用户/应用程序/时间并将这些存储到服务中某处的审核历史记录中是“错误的”。基本上通过额外的请求标头代理信息。我也同意这些不应成为请求正文或 URL 参数的一部分。

    【讨论】:

      猜你喜欢
      • 2015-09-08
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      相关资源
      最近更新 更多