เอกสารนี้อธิบายวิธีใช้ใบรับรองอีเมล S/MIME ใน Gmail API
Gmail API ให้สิทธิ์เข้าถึงแบบเป็นโปรแกรมเพื่อจัดการใบรับรองอีเมล S/MIME สำหรับผู้ใช้ในโดเมน Google Workspace
ผู้ดูแลระบบต้องเปิดใช้ S/MIME ที่โฮสต์สำหรับโดเมนเพื่อให้ใบรับรองทำงานได้
มาตรฐาน S/MIME มีข้อกำหนดสำหรับการเข้ารหัสคีย์สาธารณะและการลงนามข้อมูล MIME เมื่อกำหนดค่าใบรับรอง S/MIME ในบัญชีผู้ใช้ Gmail จะใช้ใบรับรองดังกล่าวในลักษณะต่อไปนี้
ลงนามในอีเมลขาออกด้วยใบรับรองผู้ใช้และคีย์ส่วนตัว
ถอดรหัสอีเมลขาเข้าด้วยคีย์ส่วนตัวของผู้ใช้
เข้ารหัสอีเมลขาออกด้วยใบรับรองและคีย์สาธารณะของผู้รับ
ยืนยันอีเมลขาเข้าด้วยใบรับรองผู้ส่งและคีย์สาธารณะ
คุณสร้างใบรับรอง S/MIME แต่ละใบและอัปโหลดได้โดยใช้ Gmail API ใบรับรอง S/MIME แต่ละใบใช้สำหรับนามแฝงที่เฉพาะเจาะจงของบัญชีอีเมลผู้ใช้ อีเมลแทนประกอบด้วยอีเมลหลักและอีเมล "ส่งในชื่อ" ที่กำหนดเอง API จะทำเครื่องหมายใบรับรอง S/MIME รายการเดียวเป็นค่าเริ่มต้นสำหรับ นามแฝงแต่ละรายการ
ดูข้อมูลเพิ่มเติมเกี่ยวกับอีเมลแทนได้ที่จัดการอีเมลแทนและลายเซ็นด้วย Gmail API
ให้สิทธิ์เข้าถึง API
หากต้องการให้สิทธิ์เข้าถึง Gmail API ให้ใช้วิธีการใดวิธีการหนึ่งต่อไปนี้
ใช้บัญชีบริการที่มีการมอบสิทธิ์ทั่วทั้งโดเมน ดูคำอธิบายคำศัพท์เหล่านี้ได้ที่ดูข้อมูลเกี่ยวกับการตรวจสอบสิทธิ์และการให้สิทธิ์ หากต้องการ เปิดใช้ตัวเลือกนี้ โปรดดูสร้างข้อมูล เข้าสู่ระบบ
ใช้ขั้นตอน OAuth 2.0 มาตรฐานที่ต้องได้รับความยินยอมจากผู้ใช้ปลายทางเพื่อขอโทเค็นเพื่อการเข้าถึง OAuth 2.0 ดูข้อมูลเพิ่มเติมได้ที่ดูข้อมูลเกี่ยวกับ การตรวจสอบสิทธิ์และการให้สิทธิ์
หากต้องการใช้ตัวเลือกนี้ ผู้ดูแลระบบโดเมนต้องเลือกช่องทำเครื่องหมายเปิดใช้การเข้ารหัส S/MIME ในการรับส่งอีเมลในคอนโซลผู้ดูแลระบบของ Google ดูข้อมูลเพิ่มเติมได้ที่หัวข้อเปิดใช้ S/MIME ที่โฮสต์ ใน คอนโซลผู้ดูแลระบบของ Google
ขอบเขต ACL
Gmail API ใช้ACL ขอบเขตเดียวกันกับเมธอด Gmail sendAs ดังนี้
gmail.settings.basic: ขอบเขตนี้จำเป็นสำหรับการอัปเดต S/MIME หลักSendAsgmail.settings.sharing: ขอบเขตนี้จำเป็นสำหรับการอัปเดต จาก S/MIME ที่กำหนดเอง
กำหนดค่าคีย์ S/MIME
แหล่งข้อมูล
settings.sendAs.smimeInfo
มีหลายวิธีในการจัดการใบรับรอง S/MIME ใบรับรองแต่ละรายการจะเชื่อมโยงกับนามแฝงส่งในฐานะสำหรับผู้ใช้ 1 ราย
หากต้องการกำหนดชื่อแทนสำหรับส่งในนามของผู้ใช้ ให้ใช้เมธอด
settings.sendAs.list
ในแหล่งข้อมูล
settings.sendAs
อัปโหลดคีย์ S/MIME
ใช้วิธี
settings.sendAs.smimeInfo.insert
ในทรัพยากร settings.sendAs.smimeInfo เพื่ออัปโหลดคีย์ S/MIME ใหม่
สำหรับนามแฝงที่เป็นของผู้ใช้ ระบุชื่อแทนเป้าหมายโดยใช้พารามิเตอร์เส้นทางต่อไปนี้
userId: อีเมลของผู้ใช้ ใช้ค่าพิเศษmeเพื่อระบุ ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์sendAsEmail: นามแฝงที่คุณอัปโหลดคีย์ อีเมลนี้ จะปรากฏในส่วนหัวของFrom:สำหรับอีเมลที่ส่งโดยใช้อีเมลแทนนี้
ใบรับรอง S/MIME และคีย์ส่วนตัวควรอยู่ในฟิลด์
pkcs12
ในรูปแบบดังกล่าว และไม่ควรตั้งค่าฟิลด์อื่นๆ ในคำขอ pkcs12
ฟิลด์ประกอบด้วยทั้งคีย์ S/MIME ของผู้ใช้และห่วงโซ่ใบรับรองการลงนาม
API จะทำการตรวจสอบมาตรฐานในช่องนี้ก่อนที่จะยอมรับ โดยจะตรวจสอบ
สิ่งต่อไปนี้
- เรื่องตรงกับอีเมลที่ระบุ
- วันหมดอายุถูกต้อง
- ผู้ออกใบรับรอง (CA) อยู่ในรายการที่ Google เชื่อถือ
- ใบรับรองตรงกับข้อจำกัดทางเทคนิคของ Gmail
หากคีย์มีการเข้ารหัส รหัสผ่านควรอยู่ในฟิลด์
encryptedKeyPassword
การเรียกใช้เมธอด settings.sendAs.smimeInfo.insert ที่สำเร็จจะแสดงผลทรัพยากร settings.sendAs.smimeInfo id ที่ใช้เพื่ออ้างอิงคีย์ในอนาคต
แสดงรายการคีย์ S/MIME ของผู้ใช้
ใช้เมธอด
settings.sendAs.smimeInfo.list
ในทรัพยากร settings.sendAs.smimeInfo เพื่อแสดงรายการคีย์ S/MIME
สำหรับผู้ใช้ที่ระบุสำหรับนามแฝงที่ระบุ ระบุชื่อแทนเป้าหมายโดยใช้พารามิเตอร์เส้นทางต่อไปนี้
userId: อีเมลของผู้ใช้ ใช้ค่าพิเศษmeเพื่อระบุ ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์sendAsEmail: นามแฝงที่จะใช้แสดงรายการคีย์ อีเมลนี้จะปรากฏในส่วนหัวของFrom:สำหรับอีเมลที่ส่งโดยใช้นามแฝงนี้
ดึงคีย์ S/MIME สำหรับอีเมลแทน
ใช้เมธอด
settings.sendAs.smimeInfo.get
ในทรัพยากร settings.sendAs.smimeInfo เพื่อแสดงคีย์ S/MIME
ที่เฉพาะเจาะจงสำหรับนามแฝงส่งในฐานะที่เฉพาะเจาะจงสำหรับผู้ใช้ ระบุชื่อแทนเป้าหมายโดยใช้พารามิเตอร์เส้นทางต่อไปนี้
userId: อีเมลของผู้ใช้ ใช้ค่าพิเศษmeเพื่อระบุ ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์sendAsEmail: นามแฝงที่คุณกำลังดึงคีย์ อีเมลนี้ จะปรากฏในส่วนหัวของFrom:สำหรับอีเมลที่ส่งโดยใช้อีเมลแทนนี้
ลบคีย์ S/MIME
ใช้เมธอด
settings.sendAs.smimeInfo.delete
ในทรัพยากร settings.sendAs.smimeInfo เพื่อลบคีย์ S/MIME ที่ระบุ
ออกจากชื่อแทน ระบุชื่อแทนเป้าหมายโดยใช้พารามิเตอร์เส้นทางต่อไปนี้
userId: อีเมลของผู้ใช้ ใช้ค่าพิเศษmeเพื่อระบุ ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์sendAsEmail: นามแฝงที่คุณจะลบคีย์ อีเมลนี้ จะปรากฏในส่วนหัวของFrom:สำหรับอีเมลที่ส่งโดยใช้อีเมลแทนนี้id: รหัสที่ไม่เปลี่ยนแปลงสำหรับsmimeInfo
ตั้งค่าคีย์ S/MIME เริ่มต้นสำหรับนามแฝง
ใช้วิธี
settings.sendAs.smimeInfo.setDefault
ในทรัพยากร settings.sendAs.smimeInfo เพื่อทำเครื่องหมายคีย์ S/MIME
ที่ระบุเป็นค่าเริ่มต้นสำหรับชื่อแทนที่ระบุ ระบุชื่อแทนเป้าหมายโดยใช้พารามิเตอร์เส้นทางต่อไปนี้
userId: อีเมลของผู้ใช้ ใช้ค่าพิเศษmeเพื่อระบุ ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์sendAsEmail: นามแฝงของคีย์ที่จะตั้งเป็นค่าเริ่มต้น อีเมลนี้ จะปรากฏในส่วนหัวของFrom:สำหรับอีเมลที่ส่งโดยใช้อีเมลแทนนี้id: รหัสที่ไม่เปลี่ยนแปลงสำหรับsmimeInfo
ตัวอย่างโค้ด
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ Gmail API เพื่อจัดการใบรับรอง S/MIME สำหรับองค์กรที่มีผู้ใช้หลายราย
สร้างทรัพยากร smimeInfo สำหรับใบรับรอง S/MIME
ตัวอย่างโค้ดนี้แสดงวิธีอ่านใบรับรองจากไฟล์ เข้ารหัสเป็นสตริง
Base64URL และกำหนดให้กับฟิลด์
pkcs12
ในทรัพยากร settings.sendAs.smimeInfo
Java
Python
อัปโหลดใบรับรอง S/MIME
หากต้องการอัปโหลดใบรับรอง ให้เรียกใช้เมธอด
settings.sendAs.smimeInfo.insert
และระบุทรัพยากร settings.sendAs.smimeInfo ในเนื้อหาของคำขอ
Java
Python
จัดการใบรับรองของผู้ใช้หลายคน
ตัวอย่างโค้ดเหล่านี้แสดงวิธีจัดการใบรับรองสำหรับผู้ใช้หลายรายในองค์กรในการเรียกแบบเป็นกลุ่มครั้งเดียว
แทรกใบรับรองจากไฟล์ CSV
ต่อไปนี้คือตัวอย่างไฟล์ CSV ที่แสดงรหัสผู้ใช้และเส้นทางไปยังใบรับรองของผู้ใช้แต่ละราย
$ cat certificates.csv
user1@example.com,/path/to/user1_cert.p12,cert_password_1
user2@example.com,/path/to/user2_cert.p12,cert_password_2
user3@example.com,/path/to/user3_cert.p12,cert_password_3
Java
คุณสามารถใช้ตัวอย่าง
CreateSmimeInfo และ
InsertSmimeInfo
เพื่ออัปโหลดใบรับรองสำหรับผู้ใช้ที่ระบุในไฟล์ CSV ได้
Python
คุณสามารถใช้ตัวอย่าง
create_smime_info และ
insert_smime_info
เพื่ออัปโหลดใบรับรองสำหรับผู้ใช้ที่ระบุในไฟล์ CSV ได้
การจัดการใบรับรอง
ตัวอย่างนี้รวมหลายวิธีจากแหล่งข้อมูล settings.sendAs.smimeInfo
เพื่อแสดงวิธีจัดการใบรับรองสำหรับองค์กร โดยจะแสดงรายการ
ใบรับรองสำหรับผู้ใช้ หากใบรับรองเริ่มต้นหมดอายุหรือไม่ได้ตั้งค่า ระบบจะ
อัปโหลดใบรับรองที่พบในไฟล์ที่ระบุ จากนั้นจะตั้งค่าใบรับรองที่มีวันหมดอายุในอนาคตไกลที่สุดเป็นค่าเริ่มต้น
จากนั้นฟังก์ชันนี้จะประมวลผลไฟล์ CSV ซึ่งคล้ายกับตัวอย่างแทรก ใบรับรองจากไฟล์ CSV ก่อนหน้านี้
Java
Python
หัวข้อที่เกี่ยวข้อง
- จัดการนามแฝงและลายเซ็นด้วย Gmail API
- เลือกขอบเขต Gmail API
- เปิดใช้ S/MIME ที่โฮสต์สำหรับการเข้ารหัสข้อความ