Клиент PAW Rest: создание подписи HMAC-SHA256 для запросов AWS

Я не могу успешно сгенерировать подпись для выполнения запросов AWS с помощью PAW.

Вот ссылка на подпись, которую я пытаюсь создать: http://docs.aws.amazon.com/AWSECommerceService/latest/DG/HMACSignatures.html#HMACAuth_ItemsRequired

Я уже искал другие сообщения StackOverflow, такие как: Клиент Paw Rest: как вычислить HMAC-SHA256, используя абсолютный URL-адрес в качестве входных данных


person Rob1202    schedule 07.01.2016    source источник
comment
Я предполагаю, что вы получаете предупреждение (маленький оранжевый флажок в верхней панели), говорящее о циклической ошибке зависимости? Мы исправим эту проблему в следующей версии Paw 2.2.8, которая должна выйти на следующей неделе. Я обновлю эту тему хорошим ответом, когда он будет выпущен. Благодарю вас!   -  person Micha Mazaheri    schedule 07.01.2016
comment
Только что установил обновление 2.2.8. Пожалуйста, ответьте обновленным ответом, когда это возможно. Благодарю вас!   -  person Rob1202    schedule 13.01.2016
comment
Я только что ответил на вопрос ниже, касающийся как использования SHA-256, так и общего решения для использования Amazon Product Advertising API. Я надеюсь, что это помогает!   -  person Micha Mazaheri    schedule 19.01.2016


Ответы (1)


Чтобы ответить на ваш точный вопрос о подписях HMAC-SHA256, вот фрагмент кода, который будет работать для вычисления этого конкретного типа подписи, возвращая результат Base 64, закодированный в Paw (он программно использует динамическое значение HMAC):

function signHmac256(input, key) {
    var dv = DynamicValue("com.luckymarmot.HMACDynamicValue", {
        input: input,
        key: key,
        algorithm: 3 /* = SHA256 */,
        uppercase: false /* keep hashes lowercase */,
        encoding: 'Base64' /* encode hash data in base 64 */,
    });
    return dv.getEvaluatedString();
}

В противном случае, что касается AWS Product Advertising API, мы сделали для него динамическое значение только сегодня (что является хорошей возможностью для демонстрации API расширения), см. Аутентификация AWS Product Advertising API для Paw и Репозиторий GitHub здесь.

Чтобы использовать это динамическое значение, сначала установите его по ссылке, предоставленной выше, затем вы можете настроить все остальные параметры, а затем ввести параметр Signature и установить это динамическое значение в качестве его значения:

Используйте AWS Product Advertising API в HTTP-клиенте Paw

Откройте токен, чтобы ввести секретный ключ AWS (используется в подписи HMAC):

Используйте AWS Product Advertising API в HTTP-клиенте Paw

person Micha Mazaheri    schedule 18.01.2016
comment
Это должно работать для всех подписей AWS, а не только для службы электронной коммерции, верно? - person Ngz; 01.02.2016
comment
Я, честно говоря, не уверен. AWS использует разные модели аутентификации для всех сервисов. Я знаю, что Amazon S3 использует другой (который Paw изначально поддерживает). - person Micha Mazaheri; 02.02.2016