Tài liệu này giải thích cách sử dụng chứng chỉ email S/MIME trong Gmail API.
Gmail API cung cấp quyền truy cập theo chương trình để quản lý chứng chỉ email S/MIME cho người dùng trong một miền Google Workspace.
Quản trị viên phải bật S/MIME được lưu trữ cho miền thì các chứng chỉ mới hoạt động.
Tiêu chuẩn S/MIME cung cấp một quy cách cho việc mã hoá khoá công khai và ký dữ liệu MIME. Khi bạn định cấu hình chứng chỉ S/MIME trong tài khoản người dùng, Gmail sẽ sử dụng các chứng chỉ đó theo những cách sau:
Ký thư gửi đi bằng chứng chỉ người dùng và khoá riêng tư.
Giải mã thư đến bằng khoá riêng tư của người dùng.
Mã hoá thư gửi đi bằng chứng chỉ và khoá công khai của người nhận.
Xác minh thư đến bằng chứng chỉ và khoá công khai của người gửi.
Bạn có thể tạo từng chứng chỉ S/MIME và tải chúng lên bằng API Gmail. Mỗi chứng chỉ S/MIME là dành cho một bí danh cụ thể của tài khoản email người dùng. Bí danh bao gồm địa chỉ email chính và địa chỉ "Gửi dưới tên" tuỳ chỉnh. API này đánh dấu một chứng chỉ S/MIME duy nhất là chứng chỉ mặc định cho mỗi bí danh.
Để biết thêm thông tin về biệt hiệu, hãy xem bài viết Quản lý biệt hiệu và chữ ký bằng Gmail API.
Cấp quyền truy cập API
Để uỷ quyền truy cập vào Gmail API, hãy sử dụng một trong các phương thức sau:
Sử dụng tài khoản dịch vụ có quyền uỷ quyền trên toàn miền. Để biết giải thích về các thuật ngữ này, hãy xem phần Tìm hiểu về quy trình xác thực và uỷ quyền. Để bật lựa chọn này, hãy xem phần Tạo thông tin đăng nhập để truy cập.
Sử dụng quy trình OAuth 2.0 tiêu chuẩn yêu cầu sự đồng ý của người dùng cuối để lấy mã truy cập OAuth 2.0. Để biết thêm thông tin, hãy xem phần Tìm hiểu về quy trình xác thực và uỷ quyền.
Để sử dụng lựa chọn này, quản trị viên miền phải chọn hộp đánh dấu Bật mã hoá S/MIME để gửi và nhận email trong Bảng điều khiển dành cho quản trị viên của Google. Để biết thêm thông tin, hãy xem bài viết Bật S/MIME được lưu trữ trong Bảng điều khiển dành cho quản trị viên của Google.
Phạm vi ACL
Gmail API dựa vào cùng các phạm vi ACL như các phương thức Gmail sendAs:
gmail.settings.basic: Phạm vi này là bắt buộc để cập nhật S/MIMESendAschính.gmail.settings.sharing: Phạm vi này là bắt buộc để cập nhật S/MIME from tuỳ chỉnh.
Định cấu hình khoá S/MIME
Tài nguyên settings.sendAs.smimeInfo cung cấp một số phương thức để quản lý chứng chỉ S/MIME. Mỗi chứng chỉ được liên kết với một bí danh gửi dưới tên của người dùng.
Để xác định các bí danh gửi dưới tên của người dùng, hãy sử dụng phương thức settings.sendAs.list trên tài nguyên settings.sendAs.
Tải khoá S/MIME lên
Sử dụng phương thức settings.sendAs.smimeInfo.insert trên tài nguyên settings.sendAs.smimeInfo để tải khoá S/MIME mới lên cho một email đại diện thuộc về người dùng. Xác định bí danh mục tiêu bằng các tham số đường dẫn sau:
userId: Địa chỉ email của người dùng. Sử dụng giá trị đặc biệtmeđể cho biết người dùng đã xác thực.sendAsEmail: Bí danh mà bạn đang tải khoá lên. Địa chỉ email này xuất hiện trong tiêu đềFrom:của thư được gửi bằng bí danh này.
Chứng chỉ S/MIME và khoá riêng tư phải có trong trường pkcs12 ở định dạng đó; không được đặt bất kỳ trường nào khác trong yêu cầu. Trường pkcs12 chứa cả khoá S/MIME của người dùng và chuỗi chứng chỉ ký. API thực hiện các bước xác thực tiêu chuẩn trên trường này trước khi chấp nhận, xác minh những điều sau:
- Tiêu đề khớp với địa chỉ email đã chỉ định.
- Ngày hết hạn là hợp lệ.
- Tổ chức phát hành chứng chỉ (CA) nằm trong danh sách đáng tin cậy của Google.
- Các chứng chỉ này đáp ứng các hạn chế kỹ thuật của Gmail.
Nếu khoá được mã hoá, mật khẩu phải nằm trong trường encryptedKeyPassword. Lệnh gọi phương thức settings.sendAs.smimeInfo.insert thành công sẽ trả về tài nguyên settings.sendAs.smimeInfo id được dùng để tham chiếu đến khoá trong tương lai.
Liệt kê các khoá S/MIME của người dùng
Sử dụng phương thức settings.sendAs.smimeInfo.list trên tài nguyên settings.sendAs.smimeInfo để trả về danh sách khoá S/MIME cho người dùng đã cho đối với email đại diện đã cho. Xác định bí danh mục tiêu bằng các tham số đường dẫn sau:
userId: Địa chỉ email của người dùng. Sử dụng giá trị đặc biệtmeđể cho biết người dùng đã xác thực.sendAsEmail: Bí danh để liệt kê các khoá. Địa chỉ email này xuất hiện trong tiêu đềFrom:của thư được gửi bằng email đại diện này.
Truy xuất khoá S/MIME cho một biệt hiệu
Sử dụng phương thức settings.sendAs.smimeInfo.get trên tài nguyên settings.sendAs.smimeInfo để trả về các khoá S/MIME cụ thể cho một email đại diện gửi dưới tên riêng cụ thể của người dùng. Xác định bí danh mục tiêu bằng các tham số đường dẫn sau:
userId: Địa chỉ email của người dùng. Sử dụng giá trị đặc biệtmeđể cho biết người dùng đã xác thực.sendAsEmail: Bí danh mà bạn đang truy xuất các khoá. Địa chỉ email này xuất hiện trong tiêu đềFrom:của thư được gửi bằng bí danh này.
Xoá khoá S/MIME
Sử dụng phương thức settings.sendAs.smimeInfo.delete trên tài nguyên settings.sendAs.smimeInfo để xoá khoá S/MIME đã chỉ định khỏi một biệt hiệu. Xác định bí danh mục tiêu bằng các tham số đường dẫn sau:
userId: Địa chỉ email của người dùng. Sử dụng giá trị đặc biệtmeđể cho biết người dùng đã xác thực.sendAsEmail: Email đại diện mà bạn đang xoá các khoá. Địa chỉ email này xuất hiện trong tiêu đềFrom:của thư được gửi bằng bí danh này.id: Mã nhận dạng không thay đổi chosmimeInfo.
Đặt khoá S/MIME mặc định cho một bí danh
Sử dụng phương thức settings.sendAs.smimeInfo.setDefault trên tài nguyên settings.sendAs.smimeInfo để đánh dấu khoá S/MIME đã chỉ định làm khoá mặc định cho email đại diện đã chỉ định. Xác định bí danh mục tiêu bằng các tham số đường dẫn sau:
userId: Địa chỉ email của người dùng. Sử dụng giá trị đặc biệtmeđể cho biết người dùng đã xác thực.sendAsEmail: Bí danh mà bạn muốn đặt khoá làm mặc định. Địa chỉ email này xuất hiện trong tiêu đềFrom:của thư được gửi bằng bí danh này.id: Mã nhận dạng không thay đổi chosmimeInfo.
Mã mẫu
Các mã mẫu sau đây cho biết cách sử dụng API Gmail để quản lý chứng chỉ S/MIME cho một tổ chức có nhiều người dùng:
Tạo tài nguyên smimeInfo cho chứng chỉ S/MIME
Mẫu mã này cho biết cách đọc một chứng chỉ từ một tệp, mã hoá chứng chỉ đó thành một chuỗi Base64URL và chỉ định chứng chỉ đó cho trường pkcs12 trên tài nguyên settings.sendAs.smimeInfo:
Java
Python
Tải chứng chỉ S/MIME lên
Để tải một chứng chỉ lên, hãy gọi phương thức settings.sendAs.smimeInfo.insert và cung cấp tài nguyên settings.sendAs.smimeInfo trong nội dung yêu cầu:
Java
Python
Quản lý chứng chỉ của nhiều người dùng
Các mẫu mã này cho thấy cách quản lý chứng chỉ cho nhiều người dùng trong một tổ chức trong một lệnh gọi hàng loạt:
Chèn chứng chỉ từ tệp CSV
Sau đây là một tệp CSV mẫu liệt kê mã nhận dạng người dùng và đường dẫn đến chứng chỉ của từng người dùng:
$ 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
Bạn có thể sử dụng các mẫu CreateSmimeInfo và InsertSmimeInfo để tải chứng chỉ lên cho những người dùng được chỉ định trong tệp CSV:
Python
Bạn có thể sử dụng các mẫu create_smime_info và insert_smime_info để tải chứng chỉ lên cho người dùng được chỉ định trong tệp CSV:
Quản lý chứng chỉ
Mẫu này kết hợp một số phương thức từ tài nguyên settings.sendAs.smimeInfo để cho biết cách quản lý chứng chỉ cho tổ chức của bạn. URL này liệt kê các chứng chỉ của người dùng. Nếu chứng chỉ mặc định đã hết hạn hoặc chưa được đặt, thì chứng chỉ này sẽ tải chứng chỉ có trong tệp được chỉ định lên. Sau đó, nó sẽ đặt chứng chỉ có thời hạn xa nhất trong tương lai làm chứng chỉ mặc định.
Sau đó, hàm này sẽ xử lý một tệp CSV, tương tự như mẫu Chèn chứng chỉ từ tệp CSV trước đó.
Java
Python
Chủ đề có liên quan
- Quản lý biệt hiệu và chữ ký bằng Gmail API
- Chọn các phạm vi của Gmail API
- Bật S/MIME được lưu trữ để mã hoá thư