Untuk aplikasi Google Chat yang dibangun di endpoint HTTP, bagian ini menjelaskan cara pastikan bahwa permintaan ke endpoint Anda berasal dari Chat.
Untuk mengirim peristiwa interaksi ke aplikasi Chat Anda
endpoint, Google akan membuat permintaan ke layanan Anda. Untuk memverifikasi
bahwa permintaan tersebut
dari Google, Chat menyertakan
token pemilik
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 otorisasi pemilik
sebelumnya yang benar. Ini adalah token kriptografis yang dibuat oleh Google. Jenis pembawa
token, dan nilai
audience
bergantung pada jenis audiens autentikasi yang dipilih saat
mengonfigurasi aplikasi Chat.
Jika Anda telah mengimplementasikan aplikasi Chat menggunakan Cloud Functions atau Cloud Run, Cloud IAM menangani verifikasi token secara otomatis. Anda hanya perlu menambahkan akun layanan Google Chat sebagai invoker resmi. Jika aplikasi Anda mengimplementasikan server HTTP-nya sendiri, Anda bisa memverifikasi token pemilik 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 harus merespons permintaan tersebut dengan kode respons HTTPS
401 (Unauthorized)
.
Mengautentikasi permintaan menggunakan Cloud Functions atau Cloud Run
Jika logika fungsi diimplementasikan menggunakan Cloud Functions atau Cloud Run, Anda
harus memilih App URL
di kolom Authentication Audience pada
aplikasi Chat
setelan koneksi, lalu pastikan
URL aplikasi dalam konfigurasi sesuai dengan URL Cloud Function atau
endpoint Cloud Run.
Kemudian, Anda perlu mengizinkan akun layanan Google Chat
chat@system.gserviceaccount.com
sebagai invoker.
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 kolom . (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 > Invoker Cloud Functions 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 Anda
Fungsi aplikasi Chat.
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 . (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 Anda
Fungsi aplikasi Chat.
Mengautentikasi permintaan dengan Token ID URL Aplikasi
Jika kolom Authentication Audience di aplikasi Chat
setelan koneksi disetel ke App URL
,
token otorisasi pembawa dalam permintaan adalah OpenID Connect yang ditandatangani oleh Google
Token ID (OIDC).
Kolom email
disetel ke chat@system.gserviceaccount.com
.
Kolom audience
ditetapkan ke URL yang Anda konfigurasikan untuk dikirim oleh Google Chat
ke aplikasi Chat Anda. Misalnya, jika
endpoint yang dikonfigurasi dari aplikasi Chat Anda
https://example.com/app/
, kolom audience
dalam token ID akan
https://example.com/app/
.
Contoh berikut menunjukkan cara memverifikasi bahwa token pemilik diterbitkan oleh Google Chat dan ditargetkan pada aplikasi Anda menggunakan library klien OAuth Google.
Java
Python
Node.js
Mengautentikasi permintaan dengan JWT Nomor Project
Jika kolom Authentication Audience di aplikasi Chat
setelan koneksi ditetapkan ke Project
Number
, token otorisasi pemilik dalam permintaan adalah ditandatangani sendiri
JSON Web Token (JWT),
diterbitkan dan ditandatangani oleh chat@system.gserviceaccount.com
.
Kolom audience
ditetapkan ke nomor project Google Cloud yang Anda gunakan
untuk membangun aplikasi Chat Anda. Misalnya, jika
Nomor project Cloud aplikasi Chat adalah
1234567890
, maka kolom audience
di JWT adalah 1234567890
.
Contoh berikut menunjukkan cara memverifikasi bahwa token pemilik diterbitkan oleh Google Chat dan ditargetkan pada project Anda menggunakan library klien OAuth Google.
Java
Python
Node.js
Topik terkait
- Untuk ringkasan tentang autentikasi dan otorisasi di Google Workspace, lihat Pelajari autentikasi dan otorisasi.
- Untuk ringkasan tentang autentikasi dan otorisasi di Chat, lihat Ringkasan autentikasi.
- Siapkan autentikasi dan otorisasi dengan kredensial pengguna atau akun layanan.