สำหรับแอป Google Chat ที่สร้างขึ้นบนปลายทาง HTTP ส่วนนี้จะอธิบายวิธี ยืนยันว่าคำขอไปยังปลายทางมาจาก Chat
Google จะส่งคำขอไปยังบริการของคุณเพื่อส่งเหตุการณ์การโต้ตอบไปยังปลายทางของแอป Chat
Chat จะใส่โทเค็นผู้ถือในส่วนหัว Authorization ของคำขอ HTTPS ทุกรายการที่ส่งไปยังปลายทางของคุณ เพื่อยืนยันว่าคำขอมาจาก Google
เช่น
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
สตริง AbCdEf123456 ในตัวอย่างก่อนหน้าคือโทเค็นการให้สิทธิ์แบบ Bearer
นี่คือโทเค็นการเข้ารหัสที่ Google สร้างขึ้น ประเภทของโทเค็นผู้ถือสิทธิ์
และค่าของฟิลด์ audience จะขึ้นอยู่กับประเภทการตรวจสอบสิทธิ์
กลุ่มเป้าหมายที่คุณเลือกเมื่อกำหนดค่าแอป Chat
หากคุณติดตั้งใช้งานแอป Chat โดยใช้ฟังก์ชัน Cloud Run แล้ว Cloud IAM จะจัดการการยืนยันโทเค็นโดยอัตโนมัติ คุณต้องเพิ่มบัญชีบริการของ Google Chat เป็นผู้เรียกใช้ที่ได้รับอนุญาต หากแอปของคุณใช้เซิร์ฟเวอร์ HTTP ของตัวเอง คุณสามารถยืนยันโทเค็น Bearer ได้ โดยใช้ไลบรารีของไคลเอ็นต์ Google API แบบโอเพนซอร์ส
- 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
หากโทเค็นไม่ยืนยันสำหรับแอป Chat บริการของคุณควรตอบกลับคำขอด้วยรหัสการตอบกลับ HTTPS 401 (Unauthorized)
ตรวจสอบสิทธิ์คำขอโดยใช้ฟังก์ชัน Cloud Run
หากใช้ฟังก์ชัน Cloud Run เพื่อใช้ตรรกะของฟังก์ชัน คุณต้องเลือก URL ของปลายทาง HTTP ในช่องกลุ่มเป้าหมายการตรวจสอบสิทธิ์ของการตั้งค่าการเชื่อมต่อแอป Chat และตรวจสอบว่า URL ของปลายทาง HTTP ในการกำหนดค่าตรงกับ URL ของปลายทางฟังก์ชัน Cloud Run
จากนั้น คุณต้องให้สิทธิ์บัญชีบริการของ Google Chat
chat@system.gserviceaccount.com ในฐานะผู้เรียกใช้โดยทำตามขั้นตอนต่อไปนี้
คอนโซล
หลังจากติดตั้งใช้งานฟังก์ชันหรือบริการใน Google Cloud แล้ว ให้ทำดังนี้
ในคอนโซล Google Cloud ให้ไปที่หน้า Cloud Run โดยทำดังนี้
ในรายการบริการ Cloud Run ให้คลิกช่องทําเครื่องหมายข้างฟังก์ชันการรับ (อย่าคลิกฟังก์ชันโดยตรง)
คลิกสิทธิ์ที่ด้านบนของหน้าจอ แผงสิทธิ์จะเปิดขึ้น
คลิกเพิ่มหลักการ
ในช่องหลักการใหม่ ให้ป้อน
chat@system.gserviceaccount.comจากเมนูเลือกบทบาท ให้เลือกบทบาท Cloud Run
ผู้เรียกใช้ Cloud Run
คลิกบันทึก
gcloud
ใช้คำสั่ง gcloud functions add-invoker-policy-binding
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'แทนที่ RECEIVING_FUNCTION ด้วยชื่อฟังก์ชันของแอป
Chat
ตรวจสอบสิทธิ์คำขอ HTTP ด้วยโทเค็นรหัส
หากตั้งค่าฟิลด์กลุ่มเป้าหมายการตรวจสอบสิทธิ์ของแอป Chat ในการตั้งค่าการเชื่อมต่อเป็น
URL ปลายทาง HTTP
โทเค็นการให้สิทธิ์แบบ Bearer ในคำขอจะเป็น OpenID Connect
(OIDC) ที่ Google ลงนาม
โทเค็นรหัส
ตั้งค่าฟิลด์ email เป็น chat@system.gserviceaccount.com ฟิลด์กลุ่มเป้าหมายการตรวจสอบสิทธิ์จะตั้งค่าเป็น URL ที่คุณกำหนดค่า Google Chat
เพื่อส่งคำขอไปยังแอปใน Chat ตัวอย่างเช่น หาก
ปลายทางที่กำหนดค่าของแอปใน Chat คือ
https://example.com/app/ ฟิลด์กลุ่มเป้าหมายการตรวจสอบสิทธิ์ในโทเค็น
รหัสจะเป็นhttps://example.com/app/
นี่คือวิธีการตรวจสอบสิทธิ์ที่แนะนำหากไม่ได้โฮสต์ปลายทาง HTTP ในบริการที่รองรับการตรวจสอบสิทธิ์ตาม IAM (เช่น Cloud Run) เมื่อใช้วิธีนี้ บริการ HTTP ของคุณจะต้องมีข้อมูลเกี่ยวกับ URL ของปลายทางที่บริการทำงานอยู่ แต่ไม่จำเป็นต้องมีข้อมูลเกี่ยวกับหมายเลขโปรเจ็กต์ Cloud
ตัวอย่างต่อไปนี้แสดงวิธีตรวจสอบว่าโทเค็น Bearer ออกโดย Google Chat และกำหนดเป้าหมายไปยังแอปของคุณโดยใช้ไลบรารีไคลเอ็นต์ Google OAuth
Java
Python
Node.js
ตรวจสอบสิทธิ์คำขอด้วย JWT ของหมายเลขโปรเจ็กต์
หากตั้งค่าฟิลด์กลุ่มเป้าหมายการตรวจสอบสิทธิ์ของการตั้งค่าการเชื่อมต่อแอป Chat เป็น Project
Number โทเค็นการให้สิทธิ์แบบ Bearer ในคำขอจะเป็น JSON Web Token (JWT) ที่ลงนามด้วยตนเอง
ซึ่งออกและลงนามโดย chat@system.gserviceaccount.com
ฟิลด์ audience จะตั้งค่าเป็นหมายเลขโปรเจ็กต์ Google Cloud ที่คุณใช้
สร้างแอป Chat ตัวอย่างเช่น หากหมายเลขโปรเจ็กต์ Cloud ของแอป Chat คือ
1234567890 ฟิลด์ audience ใน JWT จะเป็น 1234567890
เราขอแนะนำให้ใช้วิธีการตรวจสอบสิทธิ์นี้เฉพาะในกรณีที่คุณต้องการใช้
หมายเลขโปรเจ็กต์ Cloud เพื่อยืนยันคำขอแทน URL ของปลายทาง HTTP
เช่น หากต้องการเปลี่ยน URL ของปลายทางเมื่อเวลาผ่านไปขณะที่
ยังคงใช้หมายเลขโปรเจ็กต์ Cloud เดิม หรือหากต้องการใช้ปลายทางเดียวกัน
สำหรับหมายเลขโปรเจ็กต์ Cloud หลายหมายเลขและต้องการเปรียบเทียบฟิลด์ audience กับรายการหมายเลขโปรเจ็กต์ Cloud
ตัวอย่างต่อไปนี้แสดงวิธียืนยันว่าโทเค็น Bearer ออกโดย Google Chat และกำหนดเป้าหมายไปยังโปรเจ็กต์ของคุณโดยใช้ไลบรารีไคลเอ็นต์ Google OAuth
Java
Python
Node.js
หัวข้อที่เกี่ยวข้อง
- ดูภาพรวมของการตรวจสอบสิทธิ์และการให้สิทธิ์ใน Google Workspace ได้ที่ ดูข้อมูลเกี่ยวกับการตรวจสอบสิทธิ์และการให้สิทธิ์
- ดูภาพรวมของการตรวจสอบสิทธิ์และการให้สิทธิ์ใน Chat ได้ที่ ภาพรวมการตรวจสอบสิทธิ์
- ตั้งค่าการตรวจสอบสิทธิ์และการให้สิทธิ์ด้วย ข้อมูลเข้าสู่ระบบของผู้ใช้ หรือ บัญชีบริการ