Orders API - 用户指南¶
Orders 资源允许用户请求 barbican 生成密钥。这对于请求创建公钥/私钥对也非常有用。
- Orders 资源支持以下类型
对称密钥
非对称密钥
本用户指南提供了 Orders 资源的高级示例。它将假定您将使用 barbican 的本地运行开发环境。如果您需要设置方面的帮助,请参考 开发指南。
创建 Order¶
当您希望 barbican 生成密钥时,您需要创建一个 Order。为了使 Order 正确处理,参数 mode、bit_length 和 algorithm 必须有效。否则 Order 将失败,密钥将无法生成。下面的示例显示了一个用于生成对称密钥的有效 Order。您可以在 Orders API 文档中找到有关参数的更详细说明。
curl -X POST -H "X-Auth-Token: $TOKEN" -H "content-type:application/json" -d '{
"type":"key", "meta": { "name": "secretname", "algorithm": "aes",
"bit_length": 256, "mode": "cbc", "payload_content_type": "application/octet-stream"}
}' https://:9311/v1/orders
在将您的 Order 提交给 barbican 后,您应该收到一个 Order 引用。
{"order_ref": "https://:9311/v1/orders/3a5c6748-44de-4c1c-9e54-085c3f79e942"}
Order 引用用于检索您放置的 Order 的元数据,然后可用于检索您的密钥。
检索 Order¶
为了检索 Order,我们将使用在初始创建期间返回的引用。(参见 创建 Order。)
curl -H "X-Auth-Token: $TOKEN" -H 'Accept:application/json' \
https://:9311/v1/orders/3a5c6748-44de-4c1c-9e54-085c3f79e942
典型的响应如下
{
"created": "2015-10-15T18:15:10",
"creator_id": "40540f978fbd45c1af18910e3e02b63f",
"meta": {
"algorithm": "AES",
"bit_length": 256,
"expiration": null,
"mode": "cbc",
"name": "secretname",
"payload_content_type": "application/octet-stream"
},
"order_ref": "https://:9311/v1/orders/3a5c6748-44de-4c1c-9e54-085c3f79e942",
"secret_ref": "https://:9311/v1/secrets/bcd1b853-edeb-4509-9f12-019b8c8dfb5f",
"status": "ACTIVE",
"sub_status": "Unknown",
"sub_status_message": "Unknown",
"type": "key",
"updated": "2015-10-15T18:15:10"
}
这是与 Order 关联的元数据。要检索 Order 生成的密钥,请参考 密钥用户指南。Order 元数据对于确定您的 Order 是否已正确处理非常有用。由于 Order 是异步处理的,您可以使用 Order 返回的元数据来验证密钥是否已成功创建。响应的参数在 此处 有更详细的说明。
检索所有 Orders¶
也可以检索项目的全部 Orders。
curl -H "X-Auth-Token: $TOKEN" -H 'Accept:application/json' https://:9311/v1/orders
{
"orders": [
{
"created": "2015-10-15T18:15:10",
"creator_id": "40540f978fbd45c1af18910e3e02b63f",
"meta": {
"algorithm": "AES",
"bit_length": 256,
"expiration": null,
"mode": "cbc",
"name": "secretname",
"payload_content_type": "application/octet-stream"
},
"order_ref": "https://:9311/v1/orders/3a5c6748-44de-4c1c-9e54-085c3f79e942",
"secret_ref": "https://:9311/v1/secrets/bcd1b853-edeb-4509-9f12-019b8c8dfb5f",
"status": "ACTIVE",
"sub_status": "Unknown",
"sub_status_message": "Unknown",
"type": "key",
"updated": "2015-10-15T18:15:10"
},
{
"created": "2015-10-15T18:51:35",
"creator_id": "40540f978fbd45c1af18910e3e02b63f",
"meta": {
"algorithm": "AES",
"bit_length": 256,
"mode": "cbc",
"expiration": null,
"name": null
},
"order_ref": "https://:9311/v1/orders/d99ced51-ea7a-4c14-8e11-0dda0f49c5be",
"secret_ref": "https://:9311/v1/secrets/abadd306-8235-4f6b-984a-cc48ad039def",
"status": "ACTIVE",
"sub_status": "Unknown",
"sub_status_message": "Unknown",
"type": "key",
"updated": "2015-10-15T18:51:35"
}
],
"total": 2
}
您可以参考 orders 参数 部分的 Orders API 文档,以便优化您在 Orders 中的搜索。
删除 Order¶
也可以从 barbican 删除 Order。
curl -X DELETE -H "X-Auth-Token: $TOKEN" -H 'Accept:application/json' https://:9311/v1/orders/fbdd845f-4a5e-43e3-8f68-64e8f106c486
删除 Order 时不会返回任何内容。如果返回了内容,则很可能在删除 Order 时发生了错误。