exewen/digital-signature-php-sdk

(自定义) 用于使用需要数字签名的eBay API的SDK

v1.2.1 2024-07-29 10:37 UTC

This package is auto-updated.

Last update: 2024-09-29 11:02:01 UTC


README

HTTP消息签名提供了一种机制,用于在整个HTTP消息组件中提供端到端的真实性和完整性。

此PHP SDK旨在简化生成数字签名头部的过程,并提供了一种验证数字签名头部的方法。

目录

公共API调用的数字签名

由于来自SCA(安全控制要求)的监管要求,我们要求我们的开发者为代表欧盟/英国卖家对某些API进行的每个HTTP调用添加数字签名。

此SDK是通用的,签名方案符合即将到来的IETF标准(目前还不是RFC)。

特性

此SDK旨在根据上述IETF标准生成所需的消息签名头部。SDK中还包含了一个示例。

此SDK包含以下内容

  • 生成以下HTTP消息签名头部
    • Content-Digest:如果有的话,此头部包含对HTTP有效载荷的SHA-256摘要(如draft-ietf-httpbis-digest-headers-11中指定),对于不包含请求有效载荷的API(例如GET请求)不需要发送。
    • Signature-Input:此头部指示包含哪些头部和伪头部,以及计算签名时它们使用的顺序。它按照draft-ietf-httpbis-message-signatures-16中的规定创建。
    • Signature:签名头部的值按照第3.1节,创建签名,在IETF草案-ietf-httpbis-message-signatures-16中描述创建。它使用密钥管理API生成的私钥值。
    • x-ebay-signature-key:此头部包含使用密钥管理API创建的JWE。
  • generateSignatureHeaders 方法用于生成所有必需的头部

有关eBay API的数字签名的更多信息,请参阅文档

用法

先决条件

PHP: 7.3 or higher

安装

为了使用此SDK,请通过composer将其添加到您的PHP应用程序中

composer require ebay/digital-signature-php-sdk
composer update

在您的代码中,添加此行以返回包括签名头部在内的所有头部

$headers = $signature->generateSignatureHeaders($yourHeaders, $apiUrl, $method, $body);

请参阅示例

配置

为了运行示例应用程序,需要更新example-config.json

{
  "digestAlgorithm": "<Algorithm used for generating content digest>",
  "jwe": "<JWE generated using Key Management API>",
  "privateKey": "<Path to private key generated using Key Management API>",
  "privateKeyStr": "<(alternative to privateKey) Private key generated using Key Management API, including -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- key headers>",
  "signatureParams": "<List of signature params>"
}

参数

注意:您可以参考example-GET.phpexample-POST.php以获取如何使用SDK的示例(分别用于无请求体的GET调用和有请求体的POST调用)。

运行示例

cd examples
composer update
php example-GET.php # or php example-POST.php

许可

版权所有 2023 eBay Inc. 开发者:Ulrich Herberg 和 Arturas Sendrauskas

本软件按照Apache License,版本2.0(以下简称“许可协议”)许可;除非符合许可协议,否则不得使用本软件。您可以在以下地址获取许可协议的副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则按照许可协议分发的软件按“现状”提供,不提供任何明示或暗示的保证或条件。有关许可协议具体规定的权限和限制,请参阅许可协议。