Menghitung Tanda Tangan HMAC-SHA untuk Amazon SWF - Amazon Simple Workflow Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menghitung Tanda Tangan HMAC-SHA untuk Amazon SWF

Setiap permintaan ke Amazon SWF harus dikonfirmasi. Parameter SDK AWS secara otomatis menandatangani permintaan Anda dan mengelola autentikasi berbasis token Anda. Namun, jika Anda ingin menulis permintaan POST HTTP Anda sendiri, Anda perlu membuat nilai x-amzn-authorization untuk konten POST Header HTTP sebagai bagian dari autentikasi permintaan Anda.

Untuk informasi selengkapnya tentang format header, lihat Konten Header HTTP. Untuk implementasi AWS SDK for Java dari penandatanganan Versi 3 AWS, lihat kelas AWSSigner.java.

Membuat Tanda tangan Permintaan

Sebelum Anda membuat tanda tangan permintaan HMAC-SHA , Anda harus mendapatkan kredensial AWS (Access Key ID dan Kunci Rahasia).

penting

Anda dapat menggunakan SHA1 atau SHA256 untuk menandatangani permintaan Anda. Namun, pastikan bahwa Anda menggunakan metode yang sama selama proses penandatanganan. Metode yang Anda pilih harus sesuai dengan nilai nama Algorithm di header HTTP.

Untuk membuat tanda tangan permintaan

  1. Buat bentuk kanosis header permintaan HTTP. Bentuk kanosis header HTTP meliputi:

    • host

    • Setiap elemen header dimulai dengan x-amz-

    Untuk informasi selengkapnya tentang header yang disertakan, lihat Konten Header HTTP.

    1. Untuk setiap pasangan nama nilai header, ubah nama header (tetapi bukan nilai header) menjadi huruf kecil.

    2. Membangun peta nama header dengan nilai header dipisahkan koma.

      x-amz-example: value1 x-amz-example: value2 => x-amz-example:value1,value2

      Untuk informasi selengkapnya, lihat Bagian 4.2 dari RFC 2616.

    3. Untuk setiap pasangan nama nilai header, ubah pasangan nama nilai menjadi string dalam format headerName:headerValue. Trim spasi apa pun dari awal dan akhir headerName dan headerValue, tanpa spasi di setiap sisi titik dua.

      x-amz-example1:value1,value2 x-amz-example2:value3
    4. Masukkan baris baru (U+000A) setelah setiap string dikonversi, termasuk string terakhir.

    5. Urutkan koleksi string yang dikonversi secara abjad, dengan nama header.

  2. Membuat nilai string-to-sign yang mencakup item berikut:

    • LINE1: Metode HTTP (POST), diikuti oleh baris baru.

    • LINE2: URI permintaan (/), diikuti oleh baris baru.

    • LINE3: String kosong diikuti oleh baris baru.

      catatan

      Biasanya, string kueri muncul di sini, tapi Amazon SWF tidak menggunakan string kueri.

    • Baris4–n: String yang mewakili header permintaan kanonikalisasi yang Anda dikomputasi pada Langkah 1, diikuti oleh baris baru. Baris baru ini menciptakan baris kosong antara header dan isi permintaan HTTP. Untuk informasi selengkapnya, lihat RFC 2616.

    • Isi permintaan, tidak diikuti oleh baris baru.

  3. Komputasi inti SHA256 atau SHA1 dari nilai string-to-sign. Gunakan metode SHA yang sama di seluruh proses.

  4. Komputasi dan HMAC-SHA dikodekan Base64 menggunakan inti SHA256 atau SHA1 (tergantung pada metode yang Anda gunakan) nilai yang dihasilkan dari langkah sebelumnya dan secret access key sementara dari Layanan Token Keamanan AWS menggunakan tindakan API GetSessionToken.

    catatan

    Amazon SWF mengharapkan tanda yang sama (=) pada akhir nilai HMAC-SHA dikodekan Base64. Jika rutinitas penkodean Base64 Anda tidak menyertakan tanda sama yang ditambahkan, tambahkan satu ke akhir nilai.

    Untuk informasi selengkapnya tentang pembuatan kredensial keamanan sementara dengan Amazon SWF dan layanan AWS, lihat Layanan AWS yang Bekerja dengan IAM di Panduan Pengguna IAM.

  5. Tempatkan nilai yang dihasilkan sebagai nilai untuk nama Signature di header x-amzn-authorization dari permintaan HTTP ke Amazon SWF.

  6. Amazon SWF memverifikasi permintaan dan melakukan operasi tertentu.