Mail Admin Quarantine API ออกแบบมาสำหรับการทำงานอัตโนมัติฝั่งเซิร์ฟเวอร์ เช่น ไปป์ไลน์ความปลอดภัยและการผสานรวม SIEM หรือ SOAR การทำงานอัตโนมัติเหล่านี้จะตรวจสอบสิทธิ์ด้วยบัญชีบริการ Google Cloud ที่ใช้การมอบสิทธิ์ทั่วทั้งโดเมนเพื่อดำเนินการในนามของผู้ดูแลระบบ Google Workspace ที่มีสิทธิ์ของผู้ดูแลระบบที่จำเป็น
หน้านี้จะอธิบายขอบเขต OAuth 2.0 ที่ API ต้องการ รวมถึงวิธีกำหนดค่าบัญชีบริการและรับโทเค็นเพื่อการเข้าถึง
ขอบเขต OAuth 2.0
Admin Quarantine API ใช้ขอบเขต OAuth 2.0 ต่อไปนี้
| ขอบเขต | ความหมาย |
|---|---|
https://www.googleapis.com/auth/gmail.admin.quarantine |
ดูและจัดการข้อความที่ถูกกักบริเวณ จำเป็นสำหรับการนำส่งหรือปฏิเสธข้อความทีละรายการหรือเป็นกลุ่ม |
https://www.googleapis.com/auth/gmail.admin.quarantine.readonly |
ดูข้อความที่กักบริเวณ เพียงพอที่จะแสดงรายการ ค้นหา และรับข้อความ แสดงรายการและรับเขตกักเก็บ รวมถึงรับสถานะของการดำเนินการแบบกลุ่ม |
ตารางต่อไปนี้แสดงขอบเขตที่แต่ละเมธอดรองรับ
| วิธีการ | gmail.admin.quarantine |
gmail.admin.quarantine.readonly |
|---|---|---|
customers.quarantinedMessages.list |
✓ | ✓ |
customers.quarantinedMessages.search |
✓ | ✓ |
customers.quarantinedMessages.get |
✓ | ✓ |
customers.quarantines.list |
✓ | ✓ |
customers.quarantines.get |
✓ | ✓ |
customers.operations.get |
✓ | ✓ |
customers.quarantinedMessages.release |
✓ | |
customers.quarantinedMessages.deny |
✓ | |
customers.quarantinedMessages.batchRelease |
✓ | |
customers.quarantinedMessages.batchDeny |
✓ |
ทำตามหลักการให้สิทธิ์ขั้นต่ำที่สุด: ขอขอบเขตแบบอ่านอย่างเดียวสำหรับการผสานรวมที่ตรวจสอบเขตกักบริเวณเท่านั้น
หากคำขอใช้โทเค็นที่ไม่มีขอบเขตที่ยอมรับ API จะแสดงข้อผิดพลาด 403 พร้อมเหตุผล ACCESS_TOKEN_SCOPE_INSUFFICIENT
สร้างบัญชีบริการ
- ในคอนโซล Google Cloud ให้ไปที่ IAM และผู้ดูแลระบบ > บัญชีบริการ แล้วเลือกโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google ที่คุณเปิดใช้ API
- คลิกสร้างบัญชีบริการ ป้อนชื่อ เช่น
quarantine-api-service-accountแล้วคลิกสร้างและดำเนินการต่อ คุณไม่จำเป็นต้องให้บทบาท IAM ใดๆ แก่บัญชีบริการ คลิกเสร็จสิ้น - เปิดบัญชีบริการ และในแท็บรายละเอียด ให้คัดลอกรหัสไคลเอ็นต์ OAuth 2 ซึ่งเป็นตัวเลข 21 หลัก เช่น
109876543210987654321คุณจะต้องใช้รหัสนี้ในส่วนถัดไป - ในแท็บคีย์ ให้คลิกเพิ่มคีย์ > สร้างคีย์ใหม่ เลือก JSON แล้วคลิกสร้าง จัดเก็บไฟล์คีย์ JSON ที่ดาวน์โหลดไว้อย่างปลอดภัย
ดูข้อมูลเพิ่มเติมได้ที่หัวข้อสร้างข้อมูลเข้าสู่ระบบสำหรับบัญชีบริการ
ให้สิทธิ์การมอบสิทธิ์ทั่วทั้งโดเมน
ให้สิทธิ์บัญชีบริการเข้าถึงขอบเขต Admin Quarantine API ในบัญชี Google Workspace โดยทำดังนี้
- ลงชื่อเข้าใช้คอนโซลผู้ดูแลระบบของ Google ในฐานะผู้ดูแลระบบขั้นสูง
- ไปที่ความปลอดภัย > การเข้าถึงและการควบคุมข้อมูล > การควบคุม API
- ในส่วนการมอบสิทธิ์ทั่วทั้งโดเมน ให้คลิกจัดการการมอบสิทธิ์ทั่วทั้งโดเมน
- คลิกเพิ่มใหม่
- ในช่องรหัสไคลเอ็นต์ ให้ป้อนรหัสไคลเอ็นต์ OAuth 2.0 ของบัญชีบริการ อย่าป้อนอีเมลของบัญชีบริการ
ในช่องขอบเขต OAuth ให้ป้อนขอบเขตใดขอบเขตหนึ่งต่อไปนี้
- สำหรับสิทธิ์ในการอ่านและเขียน:
https://www.googleapis.com/auth/gmail.admin.quarantine - สำหรับสิทธิ์การเข้าถึงระดับอ่านอย่างเดียว:
https://www.googleapis.com/auth/gmail.admin.quarantine.readonly
- สำหรับสิทธิ์ในการอ่านและเขียน:
คลิกให้สิทธิ์
ดูรายละเอียดได้ที่หัวข้อควบคุมการเข้าถึง API ด้วยการมอบสิทธิ์ทั่วทั้งโดเมน
รับโทเค็นเพื่อการเข้าถึง
หากต้องการเรียก API บัญชีบริการจะแอบอ้างเป็นผู้ดูแลระบบโดยตั้งค่าการอ้างสิทธิ์ subject (sub) ของคำขอโทเค็นเป็นอีเมลของผู้ดูแลระบบ ผู้ดูแลระบบต้องมีสิทธิ์ของผู้ดูแลระบบที่จำเป็น
ตัวอย่าง Python ต่อไปนี้ใช้ไลบรารี google-auth เพื่อรับโทเค็นเพื่อการเข้าถึง
from google.oauth2 import service_account
import google.auth.transport.requests
SERVICE_ACCOUNT_FILE = 'service_account.json'
# An administrator with the Access Admin Quarantine privilege.
ADMIN_EMAIL = 'admin@example.com'
SCOPES = ['https://www.googleapis.com/auth/gmail.admin.quarantine']
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES,
subject=ADMIN_EMAIL,
)
credentials.refresh(google.auth.transport.requests.Request())
access_token = credentials.token
ส่งโทเค็นในส่วนหัว Authorization ของคำขอทุกรายการ ดังนี้
Authorization: Bearer ACCESS_TOKEN
โทเค็นเพื่อการเข้าถึงจะหมดอายุหลังจากผ่านไป 1 ชั่วโมง รีเฟรชข้อมูลเข้าสู่ระบบก่อนคำขอแต่ละชุดแทนที่จะแคชโทเค็นเป็นเวลานาน
แก้ปัญหาข้อผิดพลาดในการให้สิทธิ์
| สถานะ HTTP | เหตุผล | ความละเอียด |
|---|---|---|
401 UNAUTHENTICATED |
ไม่มีส่วนหัว Authorization หรือโทเค็นมีรูปแบบไม่ถูกต้องหรือหมดอายุแล้ว |
รับโทเค็นเพื่อการเข้าถึงใหม่และรวมไว้เป็นโทเค็นสำหรับผู้ถือ |
403 ACCESS_TOKEN_SCOPE_INSUFFICIENT |
โทเค็นไม่มีขอบเขตที่เมธอดรองรับ | ขอขอบเขต https://www.googleapis.com/auth/gmail.admin.quarantine สำหรับเมธอด release และ deny และตรวจสอบว่าขอบเขตได้รับสิทธิ์ในคอนโซลผู้ดูแลระบบ |
403 PERMISSION_DENIED |
ผู้ดูแลระบบที่ถูกแอบอ้างไม่มีสิทธิ์ในเขตกักเก็บของผู้ดูแลระบบ หรือไม่มีสิทธิ์เข้าถึงเขตกักเก็บที่มีข้อความดังกล่าว | ให้สิทธิ์เข้าถึงเขตกักเก็บของผู้ดูแลระบบหรือเข้าถึงเขตกักเก็บที่ถูกจำกัดแก่ผู้ดูแลระบบ |
403 SERVICE_DISABLED หรือ 404 NOT_FOUND ในทุกเมธอด |
ไม่ได้เปิดใช้ API ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ หรือโปรเจ็กต์ไม่ได้ลงทะเบียนในโปรแกรมเวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ | เปิดใช้ API และยืนยันการลงทะเบียนในโปรแกรมเวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ Google Workspace |