---
title: "Cara Menggunakan Apache APISIX Auth dengan Okta - API7.ai"
description: "Menggunakan plugin OpenID Connect Apache APISIX untuk autentikasi identitas terpusat."
url: "https://api7.ai/id/blog/how-to-use-apisix-auth-with-okta"
---

[Blog](https://api7.ai/id/blog)

[Products](https://api7.ai/id/category/products)[Technology](https://api7.ai/id/category/technology)[Ecosystem](https://api7.ai/id/category/ecosystem)[Case Study](https://api7.ai/id/category/usercase)[Team & Community](https://api7.ai/id/category/community)

Search

⌘ + K

[Blog](https://api7.ai/blog)

Ecosystem

# Cara Menggunakan Apache APISIX Auth dengan Okta

Fei Han

September 7, 2021

[Ecosystem](https://api7.ai/category/ecosystem)

Menggunakan Plugin OpenID Connect Apache APISIX untuk Autentikasi Identitas Terpusat\
Menggunakan plugin OpenID Connect Apache APISIX untuk mengonfigurasi autentikasi Okta adalah proses tiga langkah yang sederhana. Ini memungkinkan Anda untuk beralih dari mode autentikasi tradisional ke mode autentikasi identitas terpusat. Bagian berikut menjelaskan langkah-langkah untuk mengonfigurasi autentikasi Okta menggunakan plugin OpenID Connect untuk Apache APISIX.

Mode autentikasi identitas terpusat, dibandingkan dengan mode autentikasi tradisional, memiliki keunggulan berikut:

1. Autentikasi identitas terpusat menyederhanakan proses pengembangan aplikasi.
2. Autentikasi identitas terpusat meningkatkan keamanan bisnis.

## Prasyarat

Siapkan akun Okta yang siap digunakan.

## Langkah 1: Mengonfigurasi Okta

1. Masuk ke akun Okta Anda, klik "Create App Integration" untuk membuat aplikasi Okta.\
   ![Create App Integration](https://static.api7.ai/2022/10/03/633a432f3f24b.png?imageMogr2/format/webp)

2. Pilih "OIDC - OpenID Connect" untuk metode Sign-in, dan pilih "Web Application" untuk jenis aplikasi.\
   ![Create a new App Integration](https://static.api7.ai/2022/10/03/633a432f490b8.png?imageMogr2/format/webp)

3. Atur URL pengalihan untuk login dan logout. "Sign-in redirect URIs" adalah tautan yang diizinkan untuk dialihkan setelah login berhasil, dan "Sign-out redirect URIs" adalah tautan yang dialihkan setelah logout berhasil. Dalam contoh ini, kami mengatur kedua URL pengalihan login dan logout ke <http://127.0.0.1:9080/>.\
   ![Set the redirect URL for login and logout](https://static.api7.ai/2022/10/03/633a432e8c4ee.png?imageMogr2/format/webp)

4. Setelah menyelesaikan pengaturan, klik "Save" untuk menyimpan perubahan.\
   ![save the changes](https://static.api7.ai/2022/10/03/633a432f09398.png?imageMogr2/format/webp)

5. Kunjungi halaman General aplikasi untuk mendapatkan konfigurasi berikut, yang diperlukan untuk mengonfigurasi Apache APISIX OpenID Connect.

   - **Client ID**: ID aplikasi, yang sesuai dengan `client_id` di bawah.
   - **Client secret**: Kunci aplikasi, yang sesuai dengan `client_secret` di bawah.
   - **Okta domain**: Nama domain yang digunakan oleh aplikasi, sesuai dengan `{ISSUER}` di bawah.

   ![obtain configuration](https://static.api7.ai/2022/10/03/633a432f0dc24.png?imageMogr2/format/webp)

## Langkah 2: Menginstal Apache APISIX

### Menginstal Dependensi

Lingkungan runtime Apache APISIX memerlukan dependensi pada NGINX dan etcd. Sebelum menginstal Apache APISIX, silakan instal dependensi sesuai dengan sistem operasi yang Anda gunakan. Kami menyediakan instruksi instalasi dependensi untuk CentOS7, Fedora 31 & 32, Ubuntu 16.04 & 18.04, Debian 9 & 10, dan MacOS. Silakan merujuk ke [Install Dependencies](https://apisix.apache.org/docs/apisix/install-dependencies/) untuk detail lebih lanjut.

### Menginstal melalui Paket RPM (CentOS 7)

Metode instalasi ini cocok untuk CentOS 7, jalankan perintah berikut untuk menginstal Apache APISIX.

```
sudo yum install -y https://github.com/apache/apisix/releases/download/2.7/apisix-2.7-0.x86_64.rpm
```

### Menginstal melalui Docker

Silakan merujuk ke: [Installing Apache APISIX with Docker](https://apisix.apache.org/docs/apisix/how-to-build/#installation-via-docker).

### Menginstal melalui Helm Chart

Silakan merujuk ke: [Installing Apache APISIX with Helm Chart](https://apisix.apache.org/docs/apisix/how-to-build/#installation-via-helm-chart).

### Menginstal melalui Source Release

1. Buat direktori bernama `apisix-2.7`.

   ```
   mkdir apisix-2.7
   ```

2. Unduh paket sumber Apache APISIX Release.

   ```
   wget https://downloads.apache.org/apisix/2.7/apache-apisix-2.7-src.tgz
   ```

   Anda juga dapat mengunduh paket sumber Apache APISIX Release dari situs web Apache APISIX. [Apache APISIX Official Website - Download Page](https://apisix.apache.org/downloads/) juga menyediakan paket sumber untuk Apache APISIX, APISIX Dashboard, dan [APISIX Ingress Controller](https://github.com/apache/apisix-ingress-controller).

3. Ekstrak paket sumber Apache APISIX Release.

   ```
   tar zxvf apache-apisix-2.7-src.tgz -C apisix-2.7
   ```

4. Instal pustaka Lua yang diperlukan untuk runtime.

   ```
   # Beralih ke direktori apisix-2.7
   cd apisix-2.7
   # Buat dependensi
   make deps
   ```

### Menginisialisasi Dependensi

Jalankan perintah berikut untuk menginisialisasi file konfigurasi NGINX dan etcd.

```
# inisialisasi file konfigurasi NGINX dan etcd
make init
```

## Langkah 3: Menjalankan Apache APISIX dan Mengonfigurasi Rute yang Sesuai

1. Jalankan perintah berikut untuk memulai Apache APISIX.

   ```
   apisix start
   ```

2. Buat rute dan konfigurasikan plugin OpenID Connect. Contoh kode berikut membuat rute melalui Apache APISIX Admin API, mengatur jalur upstream ke httpbin.org, layanan backend sederhana untuk menerima dan merespons permintaan. Berikut ini akan menggunakan halaman get dari httpbin.org. Silakan merujuk ke [http bin get](http://httpbin.org/#/HTTP_Methods/get_get) untuk informasi lebih lanjut. Untuk item konfigurasi spesifik, silakan merujuk ke [Apache APISIX OpenID Connect Plugin](https://apisix.apache.org/docs/apisix/plugins/openid-connect/).

Berikut adalah daftar bidang konfigurasi OpenID Connect:

| Field                                    | Nilai Default         | Deskripsi                                                                                                                                                                                         |
| ---------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| client\_id                               | ""                    | ID klien OAuth.                                                                                                                                                                                   |
| client\_secret                           | ""                    | Rahasia klien OAuth.                                                                                                                                                                              |
| discovery                                | ""                    | Titik akhir penemuan layanan untuk penyedia identitas.                                                                                                                                            |
| scope                                    | openid                | Ruang lingkup sumber daya yang akan diakses.                                                                                                                                                      |
| relm                                     | apisix                | Tentukan informasi autentikasi header respons WWW-Authenticate.                                                                                                                                   |
| bearer\_only                             | false                 | Apakah akan memeriksa token di header permintaan.                                                                                                                                                 |
| logout\_path                             | /logout               | URI logout.                                                                                                                                                                                       |
| redirect\_uri                            | request\_uri          | URI yang dialihkan kembali oleh penyedia identitas, defaultnya adalah alamat permintaan.                                                                                                          |
| timeout                                  | 3                     | Waktu habis permintaan, unitnya dalam detik.                                                                                                                                                      |
| ssl\_verify                              | false                 | Verifikasi sertifikat SSL penyedia identitas.                                                                                                                                                     |
| introspection\_endpoint                  | ""                    | URL titik akhir autentikasi token penyedia identitas, yang akan diekstrak dari respons discovery jika dibiarkan kosong.                                                                           |
| introspection\_endpoint\_auth\_method    | client\_secret\_basic | Nama metode autentikasi untuk introspeksi token.                                                                                                                                                  |
| public\_key                              | ""                    | Kunci publik untuk token autentikasi.                                                                                                                                                             |
| token\_signing\_alg\_values\_expected    | ""                    | Algoritma untuk token autentikasi.                                                                                                                                                                |
| set\_access\_token\_header               | true                  | Apakah akan membawa token akses di header permintaan.                                                                                                                                             |
| access\_token\_in\_authorization\_header | false                 | Apakah akan menempatkan token akses di header Authorization. Token akses ditempatkan di header Authorization ketika nilai ini diatur ke true dan di header X-Access-Token ketika diatur ke false. |
| set\_id\_token\_header                   | true                  | Apakah akan membawa token ID di header permintaan X-ID-Token.                                                                                                                                     |
| set\_userinfo\_header                    | true                  | Apakah akan membawa informasi pengguna di header permintaan X-Userinfo.                                                                                                                           |

```
curl  -XPOST 127.0.0.1:9080/apisix/admin/routes -H "X-Api-Key: edd1c9f034335f136f87ad84b625c8f1" -d '{
    "uri":"/*",
    "plugins":{
        "openid-connect":{
            "client_id":"{YOUR_CLIENT_ID}",
            "client_secret":"{YOUR_CLIENT_SECRET}",
            "discovery":"https://{YOUR_ISSUER}/.well-known/openid-configuration",
            "scope":"openid profile",
            "bearer_only":false,
            "realm":"master",
            "introspection_endpoint_auth_method":"client_secret_post",
            "redirect_uri":"http://127.0.0.1:9080/"
        }
    },
    "upstream":{
        "type":"roundrobin",
        "nodes":{
            "httpbin.org:80":1
        }
    }
}'
```

## Verifikasi

1. Kunjungi "<http://127.0.0.1:9080/get>" dan halaman akan dialihkan ke halaman login Okta karena plugin OpenID Connect diaktifkan.\
   ![visit Okta login page](https://static.api7.ai/2022/10/03/633a432ea1fd3.png?imageMogr2/format/webp)

2. Masukkan nama pengguna dan kata sandi untuk akun Okta pengguna dan klik "Sign In" untuk masuk ke akun Okta Anda.

3. Setelah login berhasil, Anda dapat mengakses halaman get di "httpbin.org". Halaman "httpbin.org/get" akan mengembalikan data permintaan dengan X-Access-Token, X-Id-Token, dan X-Userinfo sebagai berikut.

   ```
   "X-Access-Token": "******Y0RPcXRtc0FtWWVuX2JQaFo1ZVBvSlBNdlFHejN1dXY5elV3IiwiYWxnIjoiUlMyNTYifQ.***TVER3QUlPbWZYSVRzWHRxRWh2QUtQMWRzVDVGZHZnZzAiLCJpc3MiOiJodHRwczovL3FxdGVzdG1hbi5va3RhLmNvbSIsImF1ZCI6Imh0dHBzOi8vcXF0ZXN0bWFuLm9rdGEuY29tIiwic3ViIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImlhdCI6MTYyODEyNjIyNSwiZXhwIjoxNjI4MTI5ODI1LCJjaWQiOiIwb2ExMWc4ZDg3TzBGQ0dYZzY5NiIsInVpZCI6IjAwdWEwNWVjZEZmV0tMS3VvNjk1Iiwic2NwIjpbIm9wZW5pZCIsInByb2Zpb***.****iBshIcJhy8QNvzAFD0fV4gh7OAdTXFMu5k0hk0JeIU6Tfg_Mh-josfap38nxRN5hSWAvWSk8VNxokWTf1qlaRbypJrKI4ntadl1PrvG-HgUSFD0JpyqSQcv10TzVeSgBfOVD-czprG2Azhck-SvcjCNDV-qc3P9KoPQz0SRFX0wuAHWUbj1FRBq79YnoJfjkJKUHz3uu7qpTK89mxco8iyuIwB8fAxPMoXjIuU6-6Bw8kfZ4S2FFg3GeFtN-vE9bE5vFbP-JFQuwFLZNgqI0XO2S7l7Moa4mWm51r2fmV7p7rdpoNXYNerXOeZIYysQwe2_L****",
   "X-Id-Token": "******aTdDRDJnczF5RnlXMUtPZUtuSUpQdyIsImFtciI6WyJwd2QiXSwic3ViIjoiMDB1YTA1ZWNkRmZXS0xLdW82OTUiLCJpc3MiOiJodHRwczpcL1wvcXF0ZXN0bWFuLm9rdGEuY29tIiwiYXVkIjoiMG9hMTFnOGQ4N08wRkNHWGc2OTYiLCJuYW1lIjoiUGV0ZXIgWmh1IiwianRpIjoiSUQuNGdvZWo4OGUyX2RuWUI1VmFMeUt2djNTdVJTQWhGNS0tM2l3Z0p5TTcxTSIsInZlciI6MSwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImV4cCI6MTYyODEyOTgyNSwiaWRwIjoiMDBvYTA1OTFndHAzMDhFbm02OTUiLCJub25jZSI6ImY3MjhkZDMxMWRjNGY3MTI4YzlmNjViOGYzYjJkMDgyIiwiaWF0IjoxNjI4MTI2MjI1LCJhdXRoX3RpbWUi*****",
   "X-Userinfo": "*****lfbmFtZSI6IlpodSIsImxvY2FsZSI6ImVuLVVTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsInVwZGF0ZWRfYXQiOjE2MjgwNzA1ODEsInpvbmVpbmZvIjoiQW1lcmljYVwvTG9zX0FuZ2VsZXMiLCJzdWIiOiIwMHVhMDVlY2RGZldLTEt1bzY5NSIsImdpdmVuX25hbWUiOiJQZXRlciIsIm5hbWUiOiJQZXRl****"
   ```

**X-Access-Token**: Apache APISIX menempatkan token akses yang diperoleh dari penyedia pengguna ke dalam header permintaan X-Access-Token, secara opsional melalui `access_token_in_authorization_header` dalam konfigurasi plugin header permintaan Authorization.

![X-Access-Token](https://static.api7.ai/2022/10/03/633a432f58583.png?imageMogr2/format/webp)

**X-Id-Token**: Apache APISIX akan mendapatkan token Id dari penyedia pengguna melalui pengkodean base64 ke dalam header permintaan X-Id-Token, Anda dapat memilih apakah akan mengaktifkan fungsi ini melalui `set_id_token_header` dalam konfigurasi plugin, defaultnya diaktifkan.

![X-Id-Token](https://static.api7.ai/2022/10/03/633a432f4eb4f.png?imageMogr2/format/webp)

**X-Userinfo**: Apache APISIX akan mendapatkan informasi pengguna dari penyedia pengguna dan menempatkannya ke dalam X-Userinfo setelah mengkodekannya dengan Base64, Anda dapat memilih apakah akan mengaktifkan fitur ini melalui `set_userinfo_header` dalam konfigurasi plugin, defaultnya diaktifkan.

![X-Userinfo](https://static.api7.ai/2022/10/03/633a432f150b4.png?imageMogr2/format/webp)

Seperti yang Anda lihat, Apache APISIX akan membawa header permintaan X-Access-Token, X-Id-Token, dan X-Userinfo ke upstream. Upstream dapat mengurai header ini untuk mendapatkan informasi ID pengguna dan metadata pengguna.

Kami telah menunjukkan proses membangun autentikasi identitas terpusat dari Okta langsung ke Apache APISIX Gateway. Sangat mudah untuk mendaftar Akun Pengembang Okta gratis untuk memulai. Pendekatan kami mengurangi beban pengembang dan memungkinkan pengalaman yang aman dan terstruktur.

## Tentang Okta

Okta adalah solusi yang dapat disesuaikan, aman, dan siap pakai untuk menambahkan layanan autentikasi dan otorisasi ke aplikasi Anda. Dapatkan autentikasi yang dapat diskalakan yang dibangun langsung ke dalam aplikasi Anda tanpa beban pengembangan, risiko keamanan, dan pemeliharaan yang datang dari pengkodean sendiri. Anda dapat menghubungkan aplikasi apa pun dalam bahasa apa pun atau pada stack apa pun ke Okta dan menentukan bagaimana Anda ingin pengguna Anda masuk. Setiap kali pengguna mencoba untuk mengautentikasi, Okta akan memverifikasi identitas mereka dan mengirim informasi yang diperlukan kembali ke aplikasi Anda.

## Tentang Apache APISIX

Apache APISIX adalah API gateway yang dinamis, real-time, dan berkinerja tinggi. Apache APISIX menyediakan fitur manajemen lalu lintas yang kaya seperti load balancing, upstream dinamis, canary release, circuit breaking, autentikasi, observabilitas, dan banyak lagi. Anda dapat menggunakan Apache APISIX untuk menangani lalu lintas tradisional utara-selatan, serta lalu lintas timur-barat antara layanan. Ini juga dapat digunakan sebagai k8s ingress controller.

Ratusan perusahaan di seluruh dunia telah menggunakan Apache APISIX, mencakup keuangan, internet, manufaktur, ritel, operator, seperti NASA, Digital Factory Uni Eropa, TravelSky, Tencent, Huawei, Weibo, China Mobile, Taikang, 360, dll.

Github: <https://github.com/apache/apisix>

Website: [https://apisix.apache.org](https://apisix.apache.org/)

Tags:

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[Okta](https://api7.ai/tags/okta)

Share article link

Share

Related Posts

[![Melindungi API Anda di Dunia Nyata: Menyelami Integrasi WAF dan API Gateway](https://static.api7.ai/uploads/2024/01/29/xV7L0ef7_APISIX_WAF_Cover.jpeg)](https://api7.ai/blog/waf-and-api-gateway-integration)

## [Melindungi API Anda di Dunia Nyata: Menyelami Integrasi WAF dan API Gateway](https://api7.ai/blog/waf-and-api-gateway-integration)

[![mTLS di Mana-mana: Cara Mengonfigurasi TLS untuk APISIX](https://static.api7.ai/uploads/2024/12/24/DVhnbLpy_apisix-mtls.png)](https://api7.ai/blog/configure-tls-for-apisix)

## [mTLS di Mana-mana: Cara Mengonfigurasi TLS untuk APISIX](https://api7.ai/blog/configure-tls-for-apisix)

Table of Contents

- [Prasyarat](#prasyarat)

- [Langkah 1: Mengonfigurasi Okta](#langkah-1-mengonfigurasi-okta)

- [Langkah 2: Menginstal Apache APISIX](#langkah-2-menginstal-apache-apisix)

  - [Menginstal Dependensi](#menginstal-dependensi)
  - [Menginstal melalui Paket RPM (CentOS 7)](#menginstal-melalui-paket-rpm-centos-7)
  - [Menginstal melalui Docker](#menginstal-melalui-docker)
  - [Menginstal melalui Helm Chart](#menginstal-melalui-helm-chart)
  - [Menginstal melalui Source Release](#menginstal-melalui-source-release)
  - [Menginisialisasi Dependensi](#menginisialisasi-dependensi)

- [Langkah 3: Menjalankan Apache APISIX dan Mengonfigurasi Rute yang Sesuai](#langkah-3-menjalankan-apache-apisix-dan-mengonfigurasi-rute-yang-sesuai)

- [Verifikasi](#verifikasi)

- [Tentang Okta](#tentang-okta)

- [Tentang Apache APISIX](#tentang-apache-apisix)

## Related Posts

[![Menggunakan Apache APISIX dan Authing untuk Menerapkan Manajemen Autentikasi Terpusat](https://static.api7.ai/2022/10/03/633a4239d6da7.webp)](https://api7.ai/id/blog/apisix-authing-integration)

Ecosystem

January 4, 2022

#### [Menggunakan Apache APISIX dan Authing untuk Menerapkan Manajemen Autentikasi Terpusat](https://api7.ai/id/blog/apisix-authing-integration)

Pengenalan Tentang Apache APISIX Apache APISIX adalah API yang dinamis, real-time, dan berkinerja tinggi ...

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Authing](https://api7.ai/tags/authing)

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[![Menggunakan Plugin OpenID Connect Apache APISIX untuk Autentikasi Identitas Terpusat](https://static.api7.ai/uploads/2024/12/24/mwrEE1y1_apisix-okta.png)](https://api7.ai/id/blog/how-to-use-apisix-auth-with-okta-2)

Ecosystem

September 7, 2021

#### [Menggunakan Plugin OpenID Connect Apache APISIX untuk Autentikasi Identitas Terpusat](https://api7.ai/id/blog/how-to-use-apisix-auth-with-okta-2)

Menggunakan plugin OpenID Connect Apache APISIX untuk mengonfigurasi autentikasi Okta adalah ...

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[Plugin](https://api7.ai/tags/plugin)

[![Membuka Solusi yang Disesuaikan: Memanfaatkan Apache APISIX dan Node-Red Secara Harmonis](https://static.api7.ai/uploads/2024/03/06/uppjizMq_APISIX-node-red-cover.png)](https://api7.ai/id/blog/apache-apisix-and-node-red)

Ecosystem

March 6, 2024

#### [Membuka Solusi yang Disesuaikan: Memanfaatkan Apache APISIX dan Node-Red Secara Harmonis](https://api7.ai/id/blog/apache-apisix-and-node-red)

Menggabungkan APISIX dan Node-Red dapat membantu mengimplementasikan proses penanganan permintaan yang lengkap secara visual tanpa perlu menulis ulang kode atau plugin yang kompleks.

[Node-Red](https://api7.ai/tags/node-red)

[APISIX Basics](https://api7.ai/tags/apisix-basics)
