HTTP消息签名插件用于HTTPie
项目描述
httpie-http-message-signatures
这是HTTPie的认证插件,实现了IETF HTTP消息签名草案规范。
这是一个不兼容的替代品,不要与"Cavage" HTTP签名草案混淆。
安装
首选安装方法是使用httpie cli plugins
实用工具
$ httpie cli plugins install httpie-http-message-signatures
您也可以下载此仓库并从本地源安装
$ cd httpie-http-message-signatures
$ httpie cli plugins install .
最后但同样重要的是,您也可以通过pip
安装
$ pip install --upgrade httpie-http-message-signatures
使用方法
使用message-signature
作为认证类型
http -A message-signature ...
HTTP消息签名草案允许使用许多参数来影响签名。由于这可能会很快变得有些令人不知所措,此插件允许以两种不同的方式传递参数
-
-a
/--auth
命令行参数这允许以以下格式在行内传递参数
key_id ":" key [":" covered_component_ids]
换句话说,关键ID后跟一个
:
,然后是Base64编码的私钥字符串,可选地后跟另一个:
和一个以逗号分隔的受保护组件ID列表。例如$ http -A message-signature -a foobar:cDf/J30Q7EtXmZZ91j4OLg== example.com $ http -A message-signature -a foobar:cDf/J30Q7EtXmZZ91j4OLg==:@authority,@method example.com
-
~/.httpmessagesignaturesrc
文件如果没有通过
-a
/--auth
传递参数,插件将查找位于主目录中的名为.httpmessagesignaturesrc
的文件。该文件是一种简单的类似于INI的文件格式,其中包含不同主机的部分,每个部分都有自己的设置。可以使用[DEFAULT]
部分为所有主机设置默认值。例如[DEFAULT] covered_component_ids = @method,@authority,@target-uri,content-digest [example.com] key_id = foobar key = cDf/J30Q7EtXmZZ91j4OLg== [*.example.com] key_id = uydnfpw0xnegmpx2op3rhw2qm key = nkAFfoSEN/rXWu6PrqsmntUeeSZ+aEoGD9YmxIxwjNxdlHPO4QYcSS+4aRroRHl92vEEipRCsr+j2tFVlPimfA== covered_component_ids = @method,@authority,@path,@query-params,content-digest
主机名允许使用通配符模式。
受保护组件ID
HTTP请求的不同部分可以包含在签名中。默认情况下,这些组件包括
@method
@authority
@target-uri
您可以通过可选的第三个命令行参数或~/.httpmessagesignaturesrc
文件中的covered_component_ids
值来覆盖此默认列表。插件识别两个特殊组件ID
-
content-digest
当指定
content-digest
作为受保护组件时,且请求有一个请求体,插件将在请求中添加一个Content-Digest
头并将其包含在签名中。这允许轻松地签名请求体。 -
@query-params
默认的
@target-uri
组件签名的整个URI,包括查询参数。根据您的用例,您可能需要单独签名请求路径和查询参数。对于这种情况,规范要求每个签名的查询参数作为其自己的组件单独列出。例如,对http://example.com/foo/?bar=baz&quux=42
的请求将看起来像这样$ http -A message-signature \ -a 'foobar:cDf/J30Q7EtXmZZ91j4OLg==:"@query-params";name="bar","@query-params";name="quux"' \ example.com bar==baz quux==42
当然,这非常不方便,因此特殊的组件ID
@query-params
将自动展开以包含所有传递的查询参数。因此,上述请求可以缩短为$ http -A message-signature -a foobar:cDf/J30Q7EtXmZZ91j4OLg==:@query-params example.com bar==baz quux==42
请参阅派生组件名称的完整列表,但在此仅提供不完整列表
@method
@target-uri
@authority
@scheme
@request-target
@path
@query
@query-param
实现
此插件是http-message-signatures的包装器。
项目详情
httpie_http_message_signatures-0.0.2.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8ee82ba4296ac5edfee6cf7db549d5cf03cd71813d09988a72a2d6cede629a74 |
|
MD5 | f4ad2d475ca7ae9c4e79b350f8587a61 |
|
BLAKE2b-256 | 4beef57dee3787844771ee7229dca65e43deaf6863078cd65fbb0cc84ba726ae |
httpie_http_message_signatures-0.0.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c47a89a9bd6558d418df9fd160a90b0e40300feb53ae0ca5b696f3bb2ec48cd1 |
|
MD5 | 02a0a87e237be54024f7028cd2259d1e |
|
BLAKE2b-256 | 0768a8e274241be88af56f2d3ff249948b36944c1419f9a6b1e57fa94453df11 |