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