Dokumen ini menjelaskan cara menggunakan sertifikat email S/MIME di Gmail API.
Gmail API menyediakan akses terprogram untuk mengelola sertifikat email S/MIME bagi pengguna di domain Google Workspace.
Administrator harus mengaktifkan S/MIME yang dihosting untuk domain agar sertifikat berfungsi.
Standar S/MIME memberikan spesifikasi untuk enkripsi kunci publik dan penandatanganan data MIME. Jika sertifikat S/MIME dikonfigurasi di akun pengguna, Gmail akan menggunakannya dengan cara berikut:
Menandatangani email keluar dengan sertifikat pengguna dan kunci pribadi.
Mendekripsi email masuk dengan kunci pribadi pengguna.
Enkripsi email keluar dengan sertifikat dan kunci publik penerima.
Verifikasi email masuk dengan sertifikat pengirim dan kunci publik.
Anda dapat membuat sertifikat S/MIME individual dan menguploadnya menggunakan Gmail API. Setiap sertifikat S/MIME ditujukan untuk alias tertentu di akun email pengguna. Alias mencakup alamat email utama dan alamat "Kirim Sebagai" khusus. API menandai satu sertifikat S/MIME sebagai default untuk setiap alias.
Untuk mengetahui informasi selengkapnya tentang alias, lihat Mengelola alias dan tanda tangan dengan Gmail API.
Memberi otorisasi akses API
Untuk memberikan otorisasi akses ke Gmail API, gunakan salah satu metode berikut:
Gunakan akun layanan dengan delegasi otoritas tingkat domain. Untuk mengetahui penjelasan tentang istilah ini, lihat Mempelajari autentikasi dan otorisasi. Untuk mengaktifkan opsi ini, lihat Membuat kredensial akses.
Gunakan alur OAuth 2.0 standar yang memerlukan izin pengguna akhir untuk mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi selengkapnya, lihat Mempelajari autentikasi dan otorisasi.
Untuk menggunakan opsi ini, administrator domain harus mencentang kotak Aktifkan enkripsi S/MIME untuk mengirim dan menerima email di konsol Google Admin. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan S/MIME yang dihosting di konsol Google Admin Anda.
Cakupan ACL
Gmail API mengandalkan cakupan ACL yang sama dengan metode Gmail sendAs:
gmail.settings.basic: Cakupan ini diperlukan untuk memperbarui S/MIMESendAsutama.gmail.settings.sharing: Cakupan ini diperlukan untuk memperbarui S/MIME dari kustom.
Mengonfigurasi kunci S/MIME
Resource
settings.sendAs.smimeInfo
menyediakan beberapa metode untuk mengelola sertifikat S/MIME. Setiap sertifikat dikaitkan dengan satu alias kirim sebagai untuk pengguna.
Untuk menentukan alias kirim sebagai untuk pengguna, gunakan metode
settings.sendAs.list
pada resource
settings.sendAs.
Mengupload kunci S/MIME
Gunakan metode
settings.sendAs.smimeInfo.insert
pada resource settings.sendAs.smimeInfo untuk mengupload kunci S/MIME baru
untuk alias milik pengguna. Identifikasi alias target menggunakan parameter jalur berikut:
userId: Alamat email pengguna. Gunakan nilai khususmeuntuk menunjukkan pengguna yang diautentikasi.sendAsEmail: Alias tempat Anda mengupload kunci. Alamat email ini muncul di headerFrom:untuk email yang dikirim menggunakan alias ini.
Sertifikat S/MIME dan kunci pribadi harus ada di kolom
pkcs12
dalam format tersebut; tidak ada kolom lain yang boleh ditetapkan dalam permintaan. Kolom pkcs12
berisi kunci S/MIME pengguna dan rantai sertifikat penandatanganan. API melakukan validasi standar pada kolom ini sebelum menerimanya, dengan memverifikasi hal berikut:
- Subjek cocok dengan alamat email yang ditentukan.
- Masa berlaku valid.
- Certificate authority (CA) penerbit ada dalam daftar tepercaya Google.
- Sertifikat sesuai dengan batasan teknis Gmail.
Jika kunci dienkripsi, sandi harus ada di kolom
encryptedKeyPassword. Panggilan metode settings.sendAs.smimeInfo.insert yang berhasil akan menampilkan resource settings.sendAs.smimeInfo id yang digunakan untuk merujuk ke kunci pada masa mendatang.
Mencantumkan kunci S/MIME pengguna
Gunakan metode
settings.sendAs.smimeInfo.list
pada resource settings.sendAs.smimeInfo untuk menampilkan daftar kunci S/MIME
untuk pengguna tertentu dan alias tertentu. Identifikasi alias target menggunakan
parameter jalur berikut:
userId: Alamat email pengguna. Gunakan nilai khususmeuntuk menunjukkan pengguna yang diautentikasi.sendAsEmail: Alias yang kuncinya akan dicantumkan. Alamat email ini muncul di headerFrom:untuk email yang dikirim menggunakan alias ini.
Mengambil kunci S/MIME untuk alias
Gunakan metode
settings.sendAs.smimeInfo.get
pada resource settings.sendAs.smimeInfo untuk menampilkan kunci S/MIME
tertentu untuk alias kirim sebagai tertentu bagi pengguna. Identifikasi alias target menggunakan
parameter jalur berikut:
userId: Alamat email pengguna. Gunakan nilai khususmeuntuk menunjukkan pengguna yang diautentikasi.sendAsEmail: Alias yang kuncinya Anda ambil. Alamat email ini muncul di headerFrom:untuk email yang dikirim menggunakan alias ini.
Menghapus kunci S/MIME
Gunakan metode
settings.sendAs.smimeInfo.delete
pada resource settings.sendAs.smimeInfo untuk menghapus kunci S/MIME yang ditentukan dari alias. Identifikasi alias target menggunakan parameter jalur berikut:
userId: Alamat email pengguna. Gunakan nilai khususmeuntuk menunjukkan pengguna yang diautentikasi.sendAsEmail: Alias yang kuncinya Anda hapus. Alamat email ini muncul di headerFrom:untuk email yang dikirim menggunakan alias ini.id: ID tetap untuksmimeInfo.
Menetapkan kunci S/MIME default untuk alias
Gunakan metode
settings.sendAs.smimeInfo.setDefault
pada resource settings.sendAs.smimeInfo untuk menandai kunci S/MIME
yang ditentukan sebagai default untuk alias yang ditentukan. Identifikasi alias target menggunakan
parameter jalur berikut:
userId: Alamat email pengguna. Gunakan nilai khususmeuntuk menunjukkan pengguna yang diautentikasi.sendAsEmail: Alias untuk kunci yang akan ditetapkan sebagai default. Alamat email ini muncul di headerFrom:untuk email yang dikirim menggunakan alias ini.id: ID tetap untuksmimeInfo.
Contoh kode
Contoh kode berikut menunjukkan cara menggunakan Gmail API untuk mengelola sertifikat S/MIME bagi organisasi dengan beberapa pengguna:
Membuat resource smimeInfo untuk sertifikat S/MIME
Contoh kode ini menunjukkan cara membaca sertifikat dari file, mengenkodekannya ke string Base64URL, dan menetapkannya ke kolom
pkcs12
di resource settings.sendAs.smimeInfo:
Java
Python
Mengupload sertifikat S/MIME
Untuk mengupload sertifikat, panggil metode
settings.sendAs.smimeInfo.insert
dan berikan resource settings.sendAs.smimeInfo dalam isi
permintaan:
Java
Python
Mengelola sertifikat beberapa pengguna
Contoh kode ini menunjukkan cara mengelola sertifikat untuk beberapa pengguna dalam organisasi dalam satu panggilan batch:
Menyisipkan sertifikat dari file CSV
Berikut adalah contoh file CSV yang mencantumkan ID pengguna dan jalur ke sertifikat setiap pengguna:
$ 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
Anda dapat menggunakan contoh
CreateSmimeInfo dan
InsertSmimeInfo
untuk mengupload sertifikat bagi pengguna yang ditentukan dalam file CSV:
Python
Anda dapat menggunakan contoh
create_smime_info dan
insert_smime_info
untuk mengupload sertifikat bagi pengguna yang ditentukan dalam file CSV:
Pengelolaan sertifikat
Contoh ini menggabungkan beberapa metode dari resource settings.sendAs.smimeInfo
untuk menunjukkan cara mengelola sertifikat untuk organisasi Anda. API ini mencantumkan sertifikat untuk pengguna. Jika sertifikat default telah habis masa berlakunya atau tidak ditetapkan, sertifikat yang ditemukan dalam file yang ditentukan akan diupload. Kemudian, sertifikat yang masa berlakunya paling lama akan ditetapkan sebagai sertifikat default.
Kemudian, fungsi ini memproses file CSV, mirip dengan contoh Menyisipkan sertifikat dari file CSV sebelumnya.
Java
Python
Topik terkait
- Mengelola alias dan tanda tangan dengan Gmail API
- Memilih cakupan Gmail API
- Mengaktifkan S/MIME yang dihosting untuk enkripsi pesan