Ten dokument wyjaśnia, jak używać certyfikatów e-mail S/MIME z interfejsem Gmail API.
Interfejs Gmail API zapewnia programowy dostęp do zarządzania certyfikatami e-maili S/MIME użytkowników w domenie Google Workspace.
Aby certyfikaty działały, administrator musi włączyć hostowane szyfrowanie S/MIME w domenie.
Standard S/MIME zawiera specyfikację szyfrowania kluczem publicznym i podpisywania danych MIME. Gdy skonfigurujesz certyfikaty S/MIME na koncie użytkownika, Gmail będzie ich używać w następujący sposób:
Podpisywanie poczty wychodzącej za pomocą certyfikatu użytkownika i klucza prywatnego.
odszyfrowywać przychodzące e-maile za pomocą klucza prywatnego użytkownika;
szyfrować pocztę wychodzącą za pomocą certyfikatu odbiorcy i klucza publicznego;
weryfikować przychodzące e-maile za pomocą certyfikatu nadawcy i klucza publicznego;
Możesz wygenerować poszczególne certyfikaty S/MIME i przesłać je za pomocą interfejsu Gmail API. Każdy certyfikat S/MIME jest przeznaczony dla konkretnego aliasu konta e-mail użytkownika. Aliasy obejmują podstawowy adres e-mail i niestandardowe adresy „Wyślij jako”. Interfejs API oznacza pojedynczy certyfikat S/MIME jako domyślny dla każdego aliasu.
Więcej informacji o aliasach znajdziesz w artykule Zarządzanie aliasami i podpisami za pomocą interfejsu Gmail API.
Autoryzowanie dostępu do interfejsu API
Aby autoryzować dostęp do interfejsu Gmail API, użyj jednej z tych metod:
Użyj konta usługi z przekazywaniem dostępu w całej domenie. Wyjaśnienie tych terminów znajdziesz w artykule Uwierzytelnianie i autoryzacja. Aby włączyć tę opcję, zapoznaj się z artykułem Tworzenie danych logowania.
Użyj standardowego przepływu OAuth 2.0, który wymaga zgody użytkownika na uzyskanie tokena dostępu OAuth 2.0. Więcej informacji znajdziesz w artykule Uwierzytelnianie i autoryzacja.
Aby skorzystać z tej opcji, administrator domeny musi zaznaczyć pole wyboru Włącz szyfrowanie S/MIME dla wysyłanych i odbieranych e-maili w konsoli administracyjnej Google. Więcej informacji znajdziesz w artykule Włączanie hostowanego szyfrowania S/MIME w konsoli administracyjnej.
Zakresy autoryzacji
Interfejs Gmail API korzysta z tych samych zakresów OAuth co metody Gmail sendAs:
gmail.settings.basic: wymagane do zaktualizowania głównegoSendAsS/MIME.gmail.settings.sharing: wymagane do zaktualizowania niestandardowego adresu od S/MIME.
Konfigurowanie kluczy S/MIME
Zasób
settings.sendAs.smimeInfo
udostępnia kilka metod zarządzania certyfikatami S/MIME. Każdy certyfikat jest powiązany z 1 aliasem „Wyślij jako” użytkownika.
Aby określić aliasy „Wyślij jako” użytkownika, użyj metody settings.sendAs.list w zasobie settings.sendAs.
Przesyłanie klucza S/MIME
Użyj metody
settings.sendAs.smimeInfo.insert
w zasobie settings.sendAs.smimeInfo, aby przesłać nowy klucz S/MIME
dla aliasu należącego do użytkownika. Określ alias celu, używając tych parametrów ścieżki:
userId: adres e-mail użytkownika. Aby wskazać uwierzytelnionego użytkownika, użyj wartości specjalnejme.sendAsEmail: alias, dla którego przesyłasz klucz. Ten adres e-mail pojawi się w nagłówkuFrom:poczty wysłanej przy użyciu tego aliasu.
Podaj certyfikat S/MIME i klucz prywatny w polu
pkcs12
w formacie PKCS #12. Nie ustawiaj w żądaniu żadnych innych pól. Pole
pkcs12 zawiera zarówno klucz S/MIME użytkownika, jak i łańcuch certyfikatów podpisywania. Interfejs API przeprowadza standardowe testy poprawności tego pola przed jego zaakceptowaniem, sprawdzając:
- Temat pasuje do podanego adresu e-mail.
- Daty wygaśnięcia są prawidłowe.
- Wystawiający urząd certyfikacji znajduje się na liście zaufanych urzędów certyfikacji Google.
- Certyfikaty są zgodne z ograniczeniami technicznymi Gmaila.
Jeśli klucz jest zaszyfrowany, podaj hasło w polu
encryptedKeyPassword. Wywołanie metody settings.sendAs.smimeInfo.insert zakończone sukcesem zwraca zasób settings.sendAs.smimeInfo id, który będzie używany do odwoływania się do klucza w przyszłości.
Wyświetlanie listy kluczy S/MIME użytkownika
Użyj metody
settings.sendAs.smimeInfo.list
w zasobie settings.sendAs.smimeInfo, aby zwrócić listę kluczy S/MIME
dla danego użytkownika i danego aliasu. Określ alias celu, korzystając z tych parametrów ścieżki:
userId: adres e-mail użytkownika. Aby wskazać uwierzytelnionego użytkownika, użyj wartości specjalnejme.sendAsEmail: Alias, dla którego mają zostać wyświetlone klucze. Ten adres e-mail pojawia się w nagłówkuFrom:poczty wysyłanej przy użyciu tego aliasu.
Pobieranie kluczy S/MIME dla aliasu
Użyj metody
settings.sendAs.smimeInfo.get
w zasobie settings.sendAs.smimeInfo, aby zwrócić konkretne klucze S/MIME
dla określonego aliasu „wyślij jako” użytkownika. Określ alias celu, korzystając z tych parametrów ścieżki:
userId: adres e-mail użytkownika. Aby wskazać uwierzytelnionego użytkownika, użyj wartości specjalnejme.sendAsEmail: alias, dla którego pobierasz klucze. Ten adres e-mail pojawi się w nagłówkuFrom:poczty wysłanej przy użyciu tego aliasu.
Usuwanie klucza S/MIME
Użyj metody
settings.sendAs.smimeInfo.delete
w zasobie settings.sendAs.smimeInfo, aby usunąć określony klucz S/MIME z aliasu. Określ alias celu, korzystając z tych parametrów ścieżki:
userId: adres e-mail użytkownika. Aby wskazać uwierzytelnionego użytkownika, użyj wartości specjalnejme.sendAsEmail: alias, z którego usuwasz klucz. Ten adres e-mail pojawi się w nagłówkuFrom:poczty wysłanej przy użyciu tego aliasu.id: niezmienny identyfikatorsmimeInfo.
Usunięty klucz nie jest już widoczny ani użyteczny. Nie możesz odszyfrować odebranych e-maili S/MIME, które zostały zaszyfrowane przy użyciu odpowiedniego klucza publicznego. Przed usunięciem klucza cofnij go w urzędzie certyfikacji, który go wydał.
Ustawianie domyślnego klucza S/MIME dla aliasu
Użyj metody
settings.sendAs.smimeInfo.setDefault
w zasobie settings.sendAs.smimeInfo, aby oznaczyć określony klucz S/MIME jako domyślny dla danego aliasu. Określ alias celu, korzystając z tych parametrów ścieżki:
userId: adres e-mail użytkownika. Aby wskazać uwierzytelnionego użytkownika, użyj wartości specjalnejme.sendAsEmail: alias, dla którego chcesz ustawić klucz domyślny. Ten adres e-mail pojawi się w nagłówkuFrom:poczty wysłanej przy użyciu tego aliasu.id: niezmienny identyfikatorsmimeInfo.
Tylko jeden klucz S/MIME jest domyślny dla aliasu „Wyślij jako” użytkownika. Wywołanie metody settings.sendAs.smimeInfo.setDefault powoduje usunięcie poprzedniego ustawienia domyślnego.
Gdy użytkownik odbiera wiadomości S/MIME podpisane danym kluczem, Gmail kojarzy ten klucz z not_beforedatą ważności najbardziej odległą w przyszłości jako domyślny podczas szyfrowania poczty wysyłanej do powiązanego użytkownika. Aby mieć pewność, że użytkownicy Gmaila, z którymi użytkownik już się komunikował, będą używać nowego klucza domyślnego, sprawdź, czy nowy klucz domyślny ma not_before datę późniejszą niż poprzedni klucz domyślny, lub cofnij poprzedni klucz domyślny.
Przykładowe fragmenty kodu
Poniższe przykłady kodu pokazują, jak za pomocą interfejsu Gmail API zarządzać certyfikatami S/MIME w organizacji z wieloma użytkownikami:
Utwórz zasób smimeInfo dla certyfikatu S/MIME.
Ten przykładowy kod pokazuje, jak odczytać certyfikat z pliku, zakodować go do postaci ciągu Base64URL i przypisać go do pola pkcs12 w zasobie settings.sendAs.smimeInfo:
Java
Python
Przesyłanie certyfikatu S/MIME
Aby przesłać certyfikat, wywołaj metodę settings.sendAs.smimeInfo.insert i podaj zasób settings.sendAs.smimeInfo w treści żądania:
Java
Python
Zarządzanie certyfikatami wielu użytkowników
Te przykłady kodu pokazują, jak zarządzać certyfikatami wielu użytkowników w organizacji w ramach jednego wywołania zbiorczego:
Wstawianie certyfikatów z pliku CSV
Oto przykładowy plik CSV z identyfikatorami użytkowników i ścieżkami do certyfikatów poszczególnych użytkowników:
$ 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
Możesz użyć przykładów CreateSmimeInfo i InsertSmimeInfo, aby przesłać certyfikaty użytkowników wskazanych w pliku CSV:
Python
Możesz użyć przykładów create_smime_info i insert_smime_info, aby przesłać certyfikaty użytkowników wskazanych w pliku CSV:
Zarządzanie certyfikatami
Ten przykład łączy kilka metod z settings.sendAs.smimeInfo, aby pokazać, jak zarządzać certyfikatami w organizacji. Wyświetla listę certyfikatów użytkownika. Jeśli domyślny certyfikat wygasł lub nie został ustawiony, przesyła certyfikat znaleziony w określonym pliku. Następnie ustawia jako domyślny certyfikat, którego data ważności jest najbardziej odległa w przyszłości.
Funkcja ta przetwarza plik CSV podobnie jak poprzedni przykład Wstawianie certyfikatów z pliku CSV.
Java
Python
Powiązane artykuły
- Zarządzanie aliasami i podpisami za pomocą interfejsu Gmail API
- Wybieranie zakresów interfejsu Gmail API
- Włączanie hostowanego szyfrowania S/MIME w celu szyfrowania wiadomości