Zoom API: Integrasi Zoom OAuth


🤔🤔🤔 Apa itu OAuth?

Dalam dunia digital, OAuth memungkinkan aplikasi berbagi akses ke data tanpa harus mengungkapkan informasi login atau kredensial pengguna secara langsung. Jadi, bisa dibilang, OAuth bagus untuk keamanan aplikasi apalagi privasi pengguna. Dalam kasus ini, OAuth berfungsi agar user tidak perlu memberikan informasi login zoom mereka ke aplikasi. Jadi autenikasi untuk layanan spesifik yang ingin digunakan. Berikut artikel yang menjelaskan tentang OAuth secara simpel :

EP72: OAuth 2.0 Explained With Simple Terms

🔎🔎🔎 Zoom OAuth

Zoom OAuth adalah sebuah layanan yang disediakan oleh Zoom untuk memungkinkan integrasi yang aman antara aplikasi dengan pihak ketiga yaitu Zoom. Dengan menggunakan Zoom OAuth, aplikasi dapat memperoleh access token yang diperlukan sebuah pengguna untuk dapat menggunakan layanan zoom yang ada di aplikasi secara aman tanpa memberikan informasi login ke aplikasi. Cara kerjanya melibatkan proses autentikasi pengguna, autentikasi aplikasi dan pemberian izin akses. Berikut adalah gambaran cara kerja Zoom OAuth yang diimplementsikan pada suatu aplikasi yang sudah memiliki auth sistem sendiri.

Penjelasan

Tujuan utamanya adalah agar aplikasi memiliki access token zoom milik pengguna, dengan begitu pengguna dapat menggunakan layanan Zoom melewati aplikasi secara aman dan efesien.

Zoom hanya akan memberikan access token pengguna jika diberikan authorization token dan yang memberikan (aplikasi) harus terautentikasi dengan zoom app yang digunakan

Jika Zoom Auth sudah di-implementasikan dengan benar pada aplikasi dan zoom app sudah di-setting dengan benar, maka cara kerja adalah sebagai berikut:

(nomor urut tidak ada hubungannya dengan yang di gambar)

1. Klien (dalam kasus ini adalah browser atau pengguna) akan membuka URL OAuth zoom aplikasi. Aplikasi akan mengecek apakah request dari user memiliki authorization token atau tidak. Jika tidak maka lanjut ke langkah berikutnya. (💡catatan: untuk mengintegrasikan dengan sistem auth yang sudah ada pada aplikasi, pengguna bisa sekaligus menginfokan id_user, misalnya melalui session token)

2. Pengguna akan ter-redirect ke Zoom (dengan membawa zoom_app_client_id dari aplikasi, yang disimpan dalam query client_id, agar Zoom tahu pengguna akan menggunakan zoom app mana) untuk authorization (meminta authorization token).

3. Pengguna akan diminta login ke akun Zoom jika belum ter-login di browser. (💡Inilah salah satu kegunaan OAuth yang sudah dijelaskan diatas, yaitu pengguna tidak memberikan informasi login Zoom ke aplikasi, melainkan ke Zoom saja). Setelah itu, pengguna akan diminta untuk masuk ke zoom app lalu akan ter-redirect kembali ke aplikasi, tapi kali ini berbeda, request dari user sudah memiliki authorization token🎉(disimpan dalam query code).

4. Aplikasi akan menggunakan authorization token (dalam query) dari user untuk meminta access token dari Zoom (sekaligus membawa zoom_app_client_id dan zoom_app_client_secret (dalam header) untuk autentikasi aplikasi dengan zoom app)

5. Zoom akan mengembalikan access token dan refresh token ke aplikasi jika berhasil

6. Selesai? bisa jadi🤔. Untuk mengintegrasikan dengan sistem auth yang sudah ada, menyimpan access token dan id user aplikasi saja sudah cukup (karena access token sifatnya unique untuk setiap akun zoom pada satu zoom app). Tapi jika aplikasi membutuhkan data zoom milik pengguna (termasuk zoom_user_id atau email zoom), aplikasi akan meminta data user zoom ke Zoom menggnakan API Zoom yang tersedia (https://api.zoom.us/v2/users/me, lengkapnya bisa dilihat di sini). Request ini akan membawa access token pengguna sebagai bearer token di header agar Zoom tahu user dan zoom app mana yang meminta data dan dapat melakukan authorization (untuk mendapatkan data user diperlukan setting scope user:read:admin pada zoom app).

7. Zoom akan mengembalikan beberapa data user ke aplikasi dan akan disimpan oleh aplikasi. Data user yang dikembalikan dapat dilihat di sini.

8. Selesai? ya😊.

Tapi bagaimana cara implementasinya? penasaran?🤔 baca artikel lanjutannya.

referensi : https://developers.zoom.us/docs/api/rest/using-zoom-apis/

penulis : Adnan R Majid