Link Search Menu Expand Document Documentation Menu

修补配置 API

1.0 版引入

补丁配置 API 允许您更新安全插件配置的特定部分,而无需替换整个配置文档。

此操作可能会轻易破坏您现有的安全配置。我们强烈建议改用 securityadmin.sh 脚本,它包含验证和保护措施,以防止错误配置。

端点

PATCH /_plugins/_security/api/securityconfig

请求正文字段

请求体是必需的。它是一个JSON 对象数组(NDJSON)。每个对象都有以下字段。

属性 必需 数据类型 描述
op 必需 字符串 要执行的操作。有效值为 addremovereplacemovecopytest
路径 必需 字符串 JSON 指针路径,指向配置中要修改的位置。
value 可选 对象 用于操作的值。对于 addreplacetest 操作是必需的。

请求示例

以下示例添加了一个新的身份验证域并修改了现有设置

PATCH /_plugins/_security/api/securityconfig
[
  {
    "op": "add",
    "path": "/config/dynamic/authc/saml_auth_domain",
    "value": {
      "http_enabled": true,
      "transport_enabled": false,
      "order": 1,
      "http_authenticator": {
        "type": "saml",
        "challenge": false,
        "config": {
          "idp": {
            "metadata_url": "https://idp.example.com/saml/metadata"
          },
          "sp": {
            "entity_id": "opensearch"
          }
        }
      },
      "authentication_backend": {
        "type": "noop",
        "config": {}
      }
    }
  },
  {
    "op": "replace",
    "path": "/config/dynamic/multi_rolespan_enabled",
    "value": true
  },
  {
    "op": "remove",
    "path": "/config/dynamic/authc/legacy_auth_domain"
  }
]

示例响应

{
  "status": "OK",
  "message": "Configuration updated."
}

响应正文字段

响应正文是一个包含以下字段的 JSON 对象。

属性 数据类型 描述
status 字符串 请求的状态。成功请求返回“OK”。
message 字符串 描述操作结果的消息。

JSON 补丁操作

API 支持以下 JSON 补丁操作

  • add:向对象添加值或将其插入到数组中。对于现有属性,值将被替换。
  • remove:从对象或数组中移除值。
  • replace:替换值。
  • move:将值从一个位置移动到另一个位置。
  • copy:将值从一个位置复制到另一个位置。
  • test:测试目标位置的值是否等于指定值。

使用注意事项

补丁配置 API 提供了比更新配置 API 更精细的配置更新控制,但仍存在潜在风险

  • 路径格式:路径以 /config 开头,后跟指向要修改的特定配置元素的 JSON 指针路径。

  • 验证:对打补丁的配置执行的验证有限,如果配置错误,可能会导致安全漏洞。

  • 备份配置:在进行更改之前,请务必备份您当前的安全配置。

  • 测试:在将配置更改部署到生产环境之前,请在开发环境中进行测试。

启用此 API

默认情况下,出于安全原因,此 API 已禁用。要启用它,请执行以下步骤

  1. 使用以下内容更新 opensearch.yml 文件

    plugins.security.unsupported.restapi.allow_securityconfig_modification: true
    

  2. 使用以下内容更新安全插件的 config.yml 文件

    plugins.security.restapi.endpoints_disabled.securityconfig: "false"
    

  3. 重启您的 OpenSearch 集群。

由于潜在的安全隐患,通常不建议在生产环境中启用此 API。

剩余 350 字符

有问题?

想要贡献?