Interfejs Mail Admin Quarantine API jest przeznaczony do automatyzacji po stronie serwera, takich jak potoki zabezpieczeń i integracje z systemami SIEM lub SOAR. Te automatyzacje uwierzytelniają się za pomocą konta usługi Google Cloud, które używa przekazywania dostępu w całej domenie, aby działać w imieniu administratora Google Workspace, który ma wymagane uprawnienia administratora.
Na tej stronie dowiesz się, jakich zakresów OAuth 2.0 wymaga interfejs API oraz jak skonfigurować konto usługi i uzyskać token dostępu.
Zakresy OAuth 2.0
Interfejs Admin Quarantine API używa tych zakresów protokołu OAuth 2.0:
| Zakres | Znaczenie |
|---|---|
https://www.googleapis.com/auth/gmail.admin.quarantine |
Wyświetlanie wiadomości w kwarantannie i zarządzanie nimi. Wymagane do zatwierdzania i odrzucania wiadomości, pojedynczo lub zbiorczo. |
https://www.googleapis.com/auth/gmail.admin.quarantine.readonly |
Wyświetlanie wiadomości w kwarantannie. Wystarczająca do wyświetlania, wyszukiwania i pobierania wiadomości, wyświetlania i pobierania kwarantann oraz uzyskiwania stanu operacji zbiorczych. |
W tabeli poniżej znajdziesz zakresy akceptowane przez poszczególne metody:
| Metoda | gmail.admin.quarantine |
gmail.admin.quarantine.readonly |
|---|---|---|
customers.quarantinedMessages.list |
✓ | ✓ |
customers.quarantinedMessages.search |
✓ | ✓ |
customers.quarantinedMessages.get |
✓ | ✓ |
customers.quarantines.list |
✓ | ✓ |
customers.quarantines.get |
✓ | ✓ |
customers.operations.get |
✓ | ✓ |
customers.quarantinedMessages.release |
✓ | |
customers.quarantinedMessages.deny |
✓ | |
customers.quarantinedMessages.batchRelease |
✓ | |
customers.quarantinedMessages.batchDeny |
✓ |
Zastosuj zasadę jak najmniejszych uprawnień: poproś o zakres tylko do odczytu w przypadku integracji, które tylko monitorują kwarantannę.
Jeśli żądanie używa tokena, który nie zawiera akceptowanego zakresu, interfejs API zwraca błąd 403 z powodem ACCESS_TOKEN_SCOPE_INSUFFICIENT.
Tworzenie konta usługi
- W konsoli Google Cloud otwórz Uprawnienia i administracja > Konta usługi i wybierz projekt w chmurze Google Cloud, w którym interfejs API został włączony.
- Kliknij Utwórz konto usługi, wpisz nazwę, na przykład
quarantine-api-service-account, i kliknij Utwórz i kontynuuj. Nie musisz przypisywać do konta usługi żadnych ról uprawnień. Kliknij Gotowe. - Otwórz konto usługi i na karcie Szczegóły skopiuj identyfikator klienta OAuth 2. Jest to 21-cyfrowy numer, np.
109876543210987654321. Będzie on potrzebny w następnej sekcji. - Na karcie Klucze kliknij Dodaj klucz > Utwórz nowy klucz, wybierz JSON i kliknij Utwórz. Pobrany plik klucza JSON przechowuj w bezpiecznym miejscu.
Więcej informacji znajdziesz w artykule Tworzenie danych logowania do konta usługi.
Autoryzowanie przekazywania dostępu w całej domenie
Autoryzuj konto usługi, aby uzyskać dostęp do zakresów interfejsu Admin Quarantine API na koncie Google Workspace:
- Zaloguj się w konsoli administracyjnej Google jako superadministrator.
- Otwórz Bezpieczeństwo > Dostęp do danych i kontrola nad nimi > Dostęp do interfejsów API.
- W sekcji Przekazywanie dostępu w całej domenie kliknij Zarządzaj przekazywaniem dostępu w całej domenie.
- Kliknij Dodaj domenę.
- W polu Identyfikator klienta wpisz identyfikator klienta OAuth 2.0 konta usługi. Nie wpisuj adresu e-mail konta usługi.
W polu Zakresy protokołu OAuth wpisz jeden z tych zakresów:
- Dostęp do odczytu i zapisu:
https://www.googleapis.com/auth/gmail.admin.quarantine - Dostęp tylko do odczytu:
https://www.googleapis.com/auth/gmail.admin.quarantine.readonly
- Dostęp do odczytu i zapisu:
Kliknij Autoryzuj.
Więcej informacji znajdziesz w artykule Kontrola dostępu do interfejsów API przy użyciu przekazywania dostępu w całej domenie.
Uzyskiwanie tokena dostępu
Aby wywołać interfejs API, konto usługi przyjmuje tożsamość administratora, ustawiając parametr subject (sub) żądania tokena na adres e-mail administratora. Administrator musi mieć wymagane uprawnienia administratora.
Poniższy przykład w Pythonie używa biblioteki google-auth do uzyskania tokena dostępu:
from google.oauth2 import service_account
import google.auth.transport.requests
SERVICE_ACCOUNT_FILE = 'service_account.json'
# An administrator with the Access Admin Quarantine privilege.
ADMIN_EMAIL = 'admin@example.com'
SCOPES = ['https://www.googleapis.com/auth/gmail.admin.quarantine']
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES,
subject=ADMIN_EMAIL,
)
credentials.refresh(google.auth.transport.requests.Request())
access_token = credentials.token
Wyślij token w nagłówku Authorization każdego żądania:
Authorization: Bearer ACCESS_TOKEN
Tokeny dostępu wygasają po godzinie. Odświeżaj dane logowania przed każdą partią żądań, zamiast przechowywać tokeny w pamięci podręcznej przez dłuższy czas.
Rozwiązywanie problemów z błędami autoryzacji
| Stan HTTP | Przyczyna | Rozdzielczość |
|---|---|---|
401 UNAUTHENTICATED |
Brakuje nagłówka Authorization lub token jest nieprawidłowy albo wygasł. |
Uzyskaj nowy token dostępu i dołącz go jako token okaziciela. |
403 ACCESS_TOKEN_SCOPE_INSUFFICIENT |
Token nie zawiera zakresu akceptowanego przez metodę. | Poproś o zakres https://www.googleapis.com/auth/gmail.admin.quarantine dla metod zwalniania i odrzucania oraz upewnij się, że zakres jest autoryzowany w konsoli administracyjnej. |
403 PERMISSION_DENIED |
Administrator, pod którego podszywa się użytkownik, nie ma uprawnień administratora kwarantanny lub nie ma dostępu do kwarantanny, w której znajduje się wiadomość. | Przyznaj administratorowi uprawnienie Dostęp do kwarantanny administracyjnej lub Dostęp do kwarantann objętych ograniczeniami. |
403 SERVICE_DISABLED lub 404 NOT_FOUND w przypadku każdej metody |
Interfejs API nie jest włączony w projekcie w chmurze lub projekt nie jest zarejestrowany w programie wersji przedpremierowej dla programistów. | Włącz interfejs API i potwierdź rejestrację w programie wersji przedpremierowej Google Workspace dla deweloperów. |