6

認証用の Houndify API ドキュメントには、次のコンテンツ ブロックがあります。


リクエスト認証の例

次の情報があるとします。

UserID: ae06fcd3-6447-4356-afaa-813aa4f2ba41
    RequestID: 70aa7c25-c74f-48be-8ca8-cbf73627c05f
    Timestamp: 1418068667   
    ClientID: KFvH6Rpy3tUimL-pCUFpPg==
    ClientKey: KgMLuq-k1oCUv5bzTlKAJf_mGo0T07jTogbi6apcqLa114CCPH3rlK4c0RktY30xLEQ49MZ-C2bMyFOVQO4PyA==
  1. UserID 文字列、RequestID 文字列、および TimeStamp 文字列を次の形式で連結します。{user_id};{request_id}{timestamp}

  2. この例の値を使用すると、予想される出力は次のようになります。ae06fcd3-6447-4356-afaa-813aa4f2ba41;70aa7c25-c74f-48be-8ca8-cbf73627c05f1418068667

  3. デコードされた ClientKey でメッセージに署名します。結果は 32 バイトのバイナリ文字列です (視覚的に表現できません)。ただし、base-64 エンコード後の署名は次のようになります。myWdEfHJ7AV8OP23v8pCH1PILL_gxH4uDOAXMi06akk=

  4. その後、クライアントは 2 つの認証ヘッダーHound-Request-AuthenticationHound-Client-Authenticationを生成します。

  5. Hound-Request-Authentication ヘッダーは、UserID と RequestID を次の形式で連結して構成されます{user-id};{request-id}。上記の例を続けると、このヘッダーの値は次のようになります: Hound-Request-Authentication:ae06fcd3-6447-4356-afaa-813aa4f2ba41;70aa7c25-c74f-48be-8ca8-cbf73627c05f

  6. Hound-Client-Authentication ヘッダーは、ClientID、TimeStamp 文字列、および署名を次の形式で連結して構成されます{client-id};{timestamp};{signature}。上記の例を続けると、このヘッダーの値は次のようになります。Hound-Client-Authentication: KFvH6Rpy3tUimL-pCUFpPg==;1418068667;myWdEfHJ7AV8OP23v8pCH1PILL_gxH4uDOAXMi06akk=


番号 3 の場合、「デコードされた ClientKey でメッセージに署名する」と表示されます。「メッセージ」と「ClientKey」は 2 つの異なる文字列です。

私の質問: ある文字列を別の文字列でどのように署名しますか?つまり、それは正確にはどういう意味ですか? JavaScript でそれを行うにはどうすればよいでしょうか。

var message = 'my_message';
var key = 'signing_key';

//??what next??

Postman で事前要求スクリプトを作成して、適切な HmacSHA256 ハッシュを実行できるように、これらすべてを理解しようとしています。

4

2 に答える 2