

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

# Konfigurasikan otorisasi Lambda API Gateway
<a name="configure-api-gateway-lambda-authorization"></a>

Setelah membuat fungsi Lambda, Anda mengonfigurasi fungsi Lambda sebagai otorisasi untuk API Anda. Anda kemudian mengonfigurasi metode Anda untuk memanggil otorisasi Lambda Anda untuk menentukan apakah pemanggil dapat memanggil metode Anda. Anda dapat membuat fungsi Lambda di akun yang sama, atau akun lain, dari tempat Anda membuat API.

[Anda dapat menguji otorisasi Lambda Anda menggunakan alat bawaan di konsol API Gateway atau dengan menggunakan Postman.](https://www.postman.com/) Untuk petunjuk tentang cara menggunakan Postman untuk menguji fungsi otorisasi Lambda Anda, lihat. [Panggil API dengan otorisasi API Gateway Lambda](call-api-with-api-gateway-lambda-authorization.md)

## Konfigurasikan otorisasi Lambda (konsol)
<a name="configure-api-gateway-lambda-authorization-with-console"></a>

 Prosedur berikut menunjukkan cara membuat otorisasi Lambda di konsol API Gateway REST API. Untuk mempelajari lebih lanjut tentang berbagai jenis otorisasi Lambda, lihat. [Memilih jenis otorisasi Lambda](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-choose) 

------
#### [ REQUEST authorizer ]

**Untuk mengkonfigurasi otorisasi `REQUEST` Lambda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Pilih API, lalu pilih **Authorizers**. 

1. Pilih **Buat Authorizer**. 

1. Untuk **nama Authorizer**, masukkan nama untuk otorisasi.

1. Untuk **jenis Authorizer**, pilih **Lambda**. 

1. Untuk **fungsi Lambda**, pilih Wilayah AWS tempat Anda membuat fungsi otorisasi Lambda Anda, lalu masukkan nama fungsi.

1. Biarkan **peran panggilan Lambda kosong** agar konsol API Gateway REST API menetapkan kebijakan berbasis sumber daya. Kebijakan ini memberikan izin API Gateway untuk menjalankan fungsi otorisasi Lambda. Anda juga dapat memilih untuk memasukkan nama peran IAM untuk mengizinkan API Gateway menjalankan fungsi otorisasi Lambda. Untuk peran contoh, lihat[Buat peran IAM yang dapat diasumsikan](integrating-api-with-aws-services-lambda.md#api-as-lambda-proxy-setup-iam-role-policies). 

1. **Untuk **payload acara Lambda**, pilih Minta.**

1. Untuk **tipe sumber Identity**, pilih tipe parameter. Jenis parameter yang didukung adalah`Header`,`Query string`,`Stage variable`, dan`Context`. Untuk menambahkan lebih banyak sumber identitas, pilih **Tambah parameter**. 

1. Untuk men-cache kebijakan otorisasi yang dihasilkan oleh otorisasi, biarkan **caching Otorisasi** tetap aktif. Saat caching kebijakan diaktifkan, Anda dapat mengubah nilai **TTL**. Menyetel **TTL** ke nol menonaktifkan caching kebijakan.

   Jika Anda mengaktifkan caching, otorisasi Anda harus mengembalikan kebijakan yang berlaku untuk semua metode di seluruh API. Untuk menegakkan kebijakan khusus metode, gunakan variabel konteks dan. `$context.path` `$context.httpMethod`

1. Pilih **Buat Authorizer**.

------
#### [ TOKEN authorizer ]

**Untuk mengkonfigurasi otorisasi `TOKEN` Lambda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Pilih API, lalu pilih **Authorizers**. 

1. Pilih **Buat Authorizer**. 

1. Untuk **nama Authorizer**, masukkan nama untuk otorisasi.

1. Untuk **jenis Authorizer**, pilih **Lambda**. 

1. Untuk **fungsi Lambda**, pilih Wilayah AWS tempat Anda membuat fungsi otorisasi Lambda Anda, lalu masukkan nama fungsi.

1. Biarkan **peran panggilan Lambda kosong** agar konsol API Gateway REST API menetapkan kebijakan berbasis sumber daya. Kebijakan ini memberikan izin API Gateway untuk menjalankan fungsi otorisasi Lambda. Anda juga dapat memilih untuk memasukkan nama peran IAM untuk mengizinkan API Gateway menjalankan fungsi otorisasi Lambda. Untuk peran contoh, lihat[Buat peran IAM yang dapat diasumsikan](integrating-api-with-aws-services-lambda.md#api-as-lambda-proxy-setup-iam-role-policies). 

1. **Untuk **payload acara Lambda, pilih Token**.**

1. Untuk **sumber Token**, masukkan nama header yang berisi token otorisasi. Penelepon harus menyertakan header nama ini untuk mengirim token otorisasi ke otorisasi Lambda.

1. (Opsional) Untuk **validasi Token**, masukkan RegEx pernyataan. API Gateway melakukan validasi awal token input terhadap ekspresi ini dan memanggil authorizer setelah validasi berhasil.

1. Untuk men-cache kebijakan otorisasi yang dihasilkan oleh otorisasi, biarkan **caching Otorisasi** tetap aktif. Saat caching kebijakan diaktifkan, nama header yang ditentukan dalam **sumber Token** menjadi kunci cache. Saat caching kebijakan diaktifkan, Anda dapat mengubah nilai **TTL**. Menyetel **TTL** ke nol menonaktifkan caching kebijakan. 

   Jika Anda mengaktifkan caching, otorisasi Anda harus mengembalikan kebijakan yang berlaku untuk semua metode di seluruh API. **Untuk menerapkan kebijakan khusus metode, Anda dapat menonaktifkan caching Otorisasi.**

1. Pilih **Buat Authorizer**.

------

Setelah Anda membuat otorisasi Lambda Anda, Anda dapat mengujinya. Prosedur berikut menunjukkan cara menguji otorisasi Lambda Anda.

------
#### [ REQUEST authorizer ]

**Untuk menguji otorisasi `REQUEST` Lambda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Pilih nama otorisasi Anda.

1. Di bawah **Pengotorisasi uji**, masukkan nilai untuk sumber identitas Anda.

   Jika Anda menggunakan[Contoh fungsi Lambda `REQUEST` authorizer](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-request-lambda-function-create), lakukan hal berikut:

   1. Pilih **Header** dan enter**headerValue1**, lalu pilih **Tambah parameter**.

   1. Di bawah **Jenis sumber identitas**, pilih **String kueri** dan masukkan**queryValue1**, lalu pilih **Tambah parameter**.

   1. Di bawah **Identity source type**, pilih **Stage variable** dan enter**stageValue1**.

   Anda tidak dapat memodifikasi variabel konteks untuk pemanggilan pengujian, tetapi Anda dapat memodifikasi template peristiwa pengujian **API Gateway Authorizer** untuk fungsi Lambda Anda. Kemudian, Anda dapat menguji fungsi otorisasi Lambda Anda dengan variabel konteks yang dimodifikasi. Untuk informasi selengkapnya, lihat [Menguji fungsi Lambda di konsol](https://docs.aws.amazon.com/lambda/latest/dg/testing-functions.html) di Panduan *AWS Lambda Pengembang*.

1. Pilih **Test Authorizer**.

------
#### [ TOKEN authorizer ]

**Untuk menguji otorisasi `TOKEN` Lambda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Pilih nama otorisasi Anda.

1. Di bawah **Pengotorisasi uji**, masukkan nilai untuk token Anda.

   Jika Anda menggunakan[Contoh fungsi Lambda `TOKEN` authorizer](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-token-lambda-function-create), lakukan hal berikut:

   1. Untuk **AuthorizationToken**, masukkan. **allow**

1. Pilih **Test Authorizer**.

    Jika otorisasi Lambda Anda berhasil menolak permintaan di lingkungan pengujian, pengujian akan merespons dengan respons HTTP. `200 OK` Namun, di luar lingkungan pengujian, API Gateway mengembalikan respons `403 Forbidden` HTTP dan permintaan metode gagal.

------

## Konfigurasikan otorisasi Lambda ()AWS CLI
<a name="configure-api-gateway-lambda-authorization-cli"></a>

Perintah [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) berikut menunjukkan untuk membuat authorizer Lambda menggunakan. AWS CLI

------
#### [ REQUEST authorizer ]

Perintah [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) berikut membuat `REQUEST` authorizer dan menggunakan variabel `Authorizer` header dan `accountId` konteks sebagai sumber identitas:

```
aws apigateway create-authorizer \
    --rest-api-id 1234123412 \
    --name 'First_Request_Custom_Authorizer' \
    --type REQUEST \
    --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \
    --identity-source 'method.request.header.Authorization,context.accountId' \
    --authorizer-result-ttl-in-seconds 300
```

------
#### [ TOKEN authorizer ]

Perintah [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) berikut membuat `TOKEN` authorizer dan menggunakan `Authorization` header sebagai sumber identitas:

```
aws apigateway create-authorizer \
    --rest-api-id 1234123412 \
    --name 'First_Token_Custom_Authorizer' \
    --type TOKEN \
    --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \
    --identity-source 'method.request.header.Authorization' \
    --authorizer-result-ttl-in-seconds 300
```

------

Setelah Anda membuat otorisasi Lambda Anda, Anda dapat mengujinya. [test-invoke-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html)Perintah berikut menguji otorisasi Lambda:

```
aws apigateway test-invoke-authorizer --rest-api-id 1234123412 \
   --authorizer-id efg1234 \
   --headers Authorization='Value'
```

## Konfigurasikan metode untuk menggunakan otorisasi Lambda (konsol)
<a name="configure-api-gateway-lambda-authorization-method-console"></a>

Setelah mengonfigurasi otorisasi Lambda, Anda harus melampirkannya ke metode untuk API Anda. Jika otorisasi Anda menggunakan caching otorisasi, pastikan Anda memperbarui kebijakan untuk mengontrol akses untuk metode tambahan.

**Untuk mengonfigurasi metode API untuk menggunakan otorisasi Lambda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Pilih API.

1. Pilih **Sumber Daya**, lalu pilih metode baru atau pilih metode yang ada.

1. Pada tab **Permintaan metode**, di bawah **Pengaturan permintaan metode**, pilih **Edit**. 

1. Untuk **Authorizer**, dari menu dropdown, pilih Lambda Authorizer yang baru saja Anda buat. 

1.  (Opsional) Jika Anda ingin meneruskan token otorisasi ke backend, pilih header permintaan **HTTP**. Pilih **Tambahkan header**, lalu tambahkan nama header otorisasi. Untuk **Nama**, masukkan nama header yang cocok dengan nama **sumber Token** yang Anda tentukan saat membuat otorisasi Lambda untuk API. Langkah ini tidak berlaku untuk `REQUEST` otorisasi. 

1. Pilih **Simpan**.

1. Pilih **Deploy API** untuk menerapkan API ke panggung. Untuk `REQUEST` otorisasi yang menggunakan variabel tahap, Anda juga harus menentukan variabel tahap yang diperlukan dan menentukan nilainya saat berada di halaman **Tahapan**.

## Konfigurasikan metode untuk menggunakan otorisasi Lambda ()AWS CLI
<a name="configure-api-gateway-lambda-authorization-method-cli"></a>

Setelah mengonfigurasi otorisasi Lambda, Anda harus melampirkannya ke metode untuk API Anda. Anda dapat membuat metode baru atau menggunakan operasi tambalan untuk melampirkan otorisasi ke metode yang ada. Jika otorisasi Anda menggunakan caching otorisasi, pastikan Anda memperbarui kebijakan untuk mengontrol akses untuk metode tambahan.

Perintah [put-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html) berikut membuat metode baru yang menggunakan authorizer Lambda:

```
aws apigateway put-method --rest-api-id 1234123412 \
  --resource-id a1b2c3 \
  --http-method PUT \
  --authorization-type CUSTOM \
  --authorizer-id efg1234
```

Perintah [update-method berikut memperbarui metode](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-method.html) yang ada untuk menggunakan Lambda authorizer:

```
aws apigateway update-method \
    --rest-api-id 1234123412 \
    --resource-id a1b2c3 \
    --http-method PUT \
    --patch-operations op="replace",path="/authorizationType",value="CUSTOM" op="replace",path="/authorizerId",value="efg1234"
```