Dokumen ini menjelaskan cara menggunakan sertifikat email S/MIME dengan 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. Saat Anda mengonfigurasi sertifikat S/MIME untuk 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 dari 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 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 Admin Anda.
Cakupan otorisasi
Gmail API mengandalkan cakupan OAuth yang sama dengan metode Gmail sendAs:
gmail.settings.basic: Diperlukan untuk memperbarui S/MIMESendAsutama.gmail.settings.sharing: Wajib diisi 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 yang digunakan untuk mengupload kunci. Alamat email ini muncul di headerFrom:untuk email yang dikirim menggunakan alias ini.
Berikan sertifikat S/MIME dan kunci pribadi di kolom
pkcs12
dalam format PKCS #12. Jangan tetapkan kolom lain dalam permintaan. Kolom
pkcs12 berisi kunci S/MIME pengguna dan rantai sertifikat penandatanganan. API melakukan validasi standar pada kolom ini sebelum menerimanya,
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, berikan sandi 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 digunakan untuk mengambil kunci. 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 tempat Anda menghapus kunci. Alamat email ini muncul di headerFrom:untuk email yang dikirim menggunakan alias ini.id: ID tetap untuksmimeInfo.
Kunci yang dihapus tidak lagi terlihat atau dapat digunakan. Anda tidak dapat mendekripsi email S/MIME yang diterima yang dienkripsi menggunakan kunci publik yang sesuai. Sebelum menghapus kunci, batalkan kunci tersebut dengan otoritas penerbitnya (CA).
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 yang akan ditetapkan sebagai kunci default. Alamat email ini muncul di headerFrom:untuk email yang dikirim menggunakan alias ini.id: ID tetap untuksmimeInfo.
Hanya satu kunci S/MIME yang menjadi default untuk alias kirim sebagai pengguna. Memanggil metode
settings.sendAs.smimeInfo.setDefault akan membatalkan setelan default sebelumnya.
Saat pengguna menerima pesan S/MIME yang ditandatangani dengan kunci tertentu, Gmail mengaitkan kunci dengan not_beforetanggal validitas
paling jauh di masa mendatang sebagai default saat mengenkripsi email yang dikirim ke
pengguna terkait. Untuk memastikan bahwa pengguna Gmail yang telah berkomunikasi dengan pengguna menggunakan kunci default baru, pastikan kunci default baru memiliki tanggal not_before yang lebih baru daripada kunci default sebelumnya atau batalkan kunci default sebelumnya.
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. 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 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