Untuk aplikasi Google Chat yang dibangun di endpoint HTTP, bagian ini menjelaskan cara memverifikasi bahwa permintaan ke endpoint Anda berasal dari Chat.
Untuk mengirim peristiwa interaksi ke endpoint
aplikasi Chat Anda, Google membuat permintaan ke layanan Anda. Untuk memverifikasi bahwa permintaan berasal dari Google, Chat menyertakan token pembawa di header Authorization
setiap permintaan HTTPS ke endpoint Anda. Contoh:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
String AbCdEf123456
dalam contoh sebelumnya adalah token otorisasi
pembawa. Ini adalah token kriptografi yang dibuat oleh Google. Jenis token pembawa dan nilai kolom audience
bergantung pada jenis audiens autentikasi yang Anda pilih saat mengonfigurasi aplikasi Chat.
Jika Anda telah menerapkan aplikasi Chat menggunakan Cloud Functions atau Cloud Run, Cloud IAM akan menangani verifikasi token secara otomatis. Anda hanya perlu menambahkan akun layanan Google Chat sebagai pemanggil yang sah. Jika aplikasi Anda menerapkan server HTTP-nya sendiri, Anda dapat memverifikasi token pembawa menggunakan library klien Google API open source:
- Java: https://github.com/google/google-api-java-client
- Python: https://github.com/google/google-api-python-client
- Node.js: https://github.com/google/google-api-nodejs-client
- .NET: https://github.com/google/google-api-dotnet-client
Jika token tidak diverifikasi untuk aplikasi Chat, layanan Anda harus merespons permintaan dengan kode respons HTTPS 401 (Unauthorized)
.
Mengautentikasi permintaan menggunakan Cloud Functions atau Cloud Run
Jika logika fungsi Anda diimplementasikan menggunakan Cloud Functions atau Cloud Run, Anda harus memilih URL endpoint HTTP di kolom Audiens Autentikasi pada setelan koneksi aplikasi Chat dan memastikan bahwa URL endpoint HTTP dalam konfigurasi sesuai dengan URL endpoint Cloud Function atau Cloud Run.
Kemudian, Anda harus memberikan otorisasi pada akun layanan Google Chat
chat@system.gserviceaccount.com
sebagai pemanggil.
Langkah-langkah berikut menunjukkan cara menggunakan Cloud Functions (generasi ke-1):
Konsol
Setelah men-deploy fungsi Anda ke Google Cloud:
Di konsol Google Cloud, buka halaman Cloud Functions:
Dalam daftar Cloud Functions, klik kotak centang di samping fungsi penerima. (Jangan klik fungsi itu sendiri.)
Klik Izin di bagian atas layar. Panel Izin akan terbuka.
Klik Tambahkan akun utama.
Di kolom New principals, masukkan
chat@system.gserviceaccount.com
.Pilih peran Cloud Functions > Cloud Functions Invoker dari menu drop-down Pilih peran.
Klik Simpan.
gcloud
Gunakan perintah gcloud functions add-iam-policy-binding
:
gcloud functions add-iam-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com' \
--role='roles/cloudfunctions.invoker'
Ganti RECEIVING_FUNCTION
dengan nama fungsi aplikasi Chat Anda.
Langkah-langkah berikut menunjukkan cara menggunakan layanan Cloud Functions (generasi ke-2) atau Cloud Run:
Konsol
Setelah men-deploy fungsi atau layanan Anda ke Google Cloud:
Di konsol Google Cloud, buka halaman Cloud Run:
Dalam daftar layanan Cloud Run, klik kotak centang di samping fungsi penerima. (Jangan klik fungsi itu sendiri.)
Klik Izin di bagian atas layar. Panel Izin akan terbuka.
Klik Tambahkan akun utama.
Di kolom New principals, masukkan
chat@system.gserviceaccount.com
.Pilih peran Cloud Run > Cloud Run Invoker dari menu drop-down Pilih peran.
Klik Simpan.
gcloud
Gunakan perintah gcloud functions add-invoker-policy-binding
:
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'
Ganti RECEIVING_FUNCTION
dengan nama fungsi aplikasi Chat Anda.
Mengautentikasi permintaan HTTP dengan Token ID
Jika kolom Audiens Autentikasi pada
setelan koneksi aplikasi Chat ditetapkan ke
URL endpoint HTTP,
token otorisasi pembawa dalam permintaan adalah
token ID OpenID Connect (OIDC) yang ditandatangani Google.
Kolom email
ditetapkan ke chat@system.gserviceaccount.com
. Kolom
Authentication Audience ditetapkan ke URL yang Anda konfigurasi agar Google Chat
mengirim permintaan ke aplikasi Chat Anda. Misalnya, jika
endpoint aplikasi Chat yang dikonfigurasi adalah
https://example.com/app/
, maka kolom Authentication Audience dalam token
ID adalahhttps://example.com/app/
.
Ini adalah metode autentikasi yang direkomendasikan jika endpoint HTTP Anda tidak dihosting di layanan yang mendukung autentikasi berbasis IAM (seperti Cloud Functions atau Cloud Run). Dengan menggunakan metode ini, layanan HTTP Anda memerlukan informasi tentang URL endpoint tempat layanan tersebut berjalan, tetapi tidak memerlukan informasi tentang nomor project Cloud.
Contoh berikut menunjukkan cara memverifikasi bahwa token pembawa dikeluarkan oleh Google Chat dan ditujukan untuk aplikasi Anda menggunakan library klien Google OAuth.
Java
Python
Node.js
Mengautentikasi permintaan dengan JWT Nomor Project
Jika kolom Audiens Autentikasi pada setelan koneksi aplikasi Chat ditetapkan ke Project
Number
, token otorisasi pembawa dalam permintaan adalah Token Web JSON (JWT) yang ditandatangani sendiri,
dikeluarkan dan ditandatangani oleh chat@system.gserviceaccount.com
.
Kolom audience
disetel ke nomor project Google Cloud yang Anda gunakan
untuk membangun aplikasi Chat Anda. Misalnya, jika nomor project Cloud aplikasi Chat Anda adalah
1234567890
, maka kolom audience
di JWT adalah 1234567890
.
Metode autentikasi ini hanya direkomendasikan jika Anda lebih memilih menggunakan
nomor project Cloud untuk memverifikasi permintaan, bukan URL
endpoint HTTP. Misalnya, jika Anda ingin mengubah URL endpoint dari waktu ke waktu sambil
mempertahankan nomor project Cloud yang sama, atau jika Anda ingin menggunakan
endpoint yang sama untuk beberapa nomor project Cloud dan ingin membandingkan
kolom audience
dengan daftar nomor project Cloud.
Contoh berikut menunjukkan cara memverifikasi bahwa token pembawa dikeluarkan oleh Google Chat dan ditujukan ke project Anda menggunakan library klien Google OAuth.
Java
Python
Node.js
Topik terkait
- Untuk ringkasan autentikasi dan otorisasi di Google Workspace, lihat Mempelajari autentikasi dan otorisasi.
- Untuk ringkasan autentikasi dan otorisasi di Chat, lihat Ringkasan autentikasi.
- Siapkan autentikasi dan otorisasi dengan kredensial pengguna atau akun layanan.