Apigee HMAC 摘要和 base64 编码



我正在尝试将签名验证的某些部分从服务代码移动到Apigee API网关。 我目前在 Ruby 中有这段代码

signature = Base64.urlsafe_encode64(OpenSSL::HMAC.digest('sha1', secret, base_string))

我正在使用 Apigee JavaScript 策略。 如何在 Apigee 中计算此签名?假设我有秘密和base_string可用作为流变量。

我被困在Apigee中的Javascript代码

中,这将实现这一目标。当前 Apigee Javascript 代码:

var _sha1 = crypto.getSHA1();
_sha1.update(secret);
_sha1.update(base_string);
var signature = _sha1.digest64();

谢谢

Apigee edge有一个hmac策略,但令人惊讶的是没有找到任何关于它的文档。花了一些时间后,我无法让它工作。

Apigee还允许javascript和python扩展。在JS扩展中,无法根据apigee文档生成HMAC签名。所以我最终使用了python扩展。下面是对我有用的代码片段。

import hmac
import hashlib
import base64
# secretkey = flow.getVariable('secret')   
secretkey = '432jfe92390ndj23i'
rawStr = 'data we want to hash'
computedHash = hmac.new(secretkey, rawStr, hashlib.sha256)
# digest is the byte str generated    
digest = computedHash.digest()
computedHash = base64.b64encode(digest)
flow.setVariable('signature', computedHash) 

希望这有帮助。

最新更新