参数
请参阅 插件通用配置 了解所有插件可用的配置选项。
凭据
以下是可在 凭据 上配置的插件属性。
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:
300vaild 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
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 及更高版本中可用。