跳到主要内容

参数

请参阅 插件通用配置 了解所有插件可用的配置选项。

凭据

以下是可在 凭据 上配置的插件属性。

  • key_id

    string


    required


    消费者的唯一标识符,用于识别关联的配置,例如密钥。

  • secret_key

    string


    required


    用于生成 HMAC 的密钥。

    该密钥在存储到 etcd 之前会使用 AES 加密。你也可以将其存储在环境变量中并使用 env:// 前缀引用,或者存储在如 HashiCorp Vault 的 KV secrets engine 等密钥管理器中,并使用 secret:// 前缀引用。更多信息请参考 Secrets

路由或服务

以下是可在 路由服务 上配置的插件属性。

  • allowed_algorithms

    array[string]


    default: ["hmac-sha1", "hmac-sha256", "hmac-sha512"]


    允许的 HMAC 算法列表。

  • clock_skew

    integer


    default: 300


    vaild vaule:

    大于或等于 1


    允许的客户端请求时间戳与 APISIX 服务器当前时间之间的最大时间差(秒)。这有助于解决客户端与服务器时钟之间的时间同步差异,并防止重放攻击。将使用 Date 头部中的时间戳(必须是 GMT 格式)进行计算。

  • signed_headers

    array[string]


    应包含在客户端请求 HMAC 签名中的 HMAC 签名头列表。

  • validate_request_body

    boolean


    如果为 true,则验证请求体的完整性,以确保其在传输过程中未被篡改。具体来说,插件会创建一个 SHA-256 base64 编码的摘要,并将其与 Digest 头部进行比较。如果 Digest 头部缺失或摘要不匹配,则验证失败。

  • hide_credentials

    boolean


    default: false


    如果为 true,则不将 authorization 请求头传递给上游服务。

  • anonymous_consumer

    string


    匿名消费者名称。如果配置了此项,允许匿名用户绕过认证。详情请参考 匿名消费者的速率限制

  • realm

    string


    default: hmac


    认证失败时返回的 401 Unauthorized 响应中 WWW-Authenticate 响应头的 Realm。例如:

    • 如果 realm 设置为 hmac-auth,401 响应将包含以下头部:

      WWW-Authenticate: hmac realm="hmac-auth"
      
    • 如果未配置 realm,401 响应将包含以下头部:

      WWW-Authenticate: hmac realm="hmac"
      

    该参数在 API7 企业版版本 3.9.2 及更高版本,以及 Apache APISIX 版本 3.15.0 及更高版本中可用。