L'API Mail Admin Quarantine è progettata per le automazioni lato server, come le pipeline di sicurezza e le integrazioni SIEM o SOAR. Queste automazioni si autenticano con un service account Google Cloud che utilizza la delega a livello di dominio per agire per conto di un amministratore di Google Workspace che dispone del privilegio amministrativo richiesto.
Questa pagina spiega quali ambiti OAuth 2.0 sono richiesti dall'API e come configurare un service account e ottenere un token di accesso.
Ambiti OAuth 2.0
L'API Admin Quarantine utilizza i seguenti ambiti OAuth 2.0:
| Ambito | Significato |
|---|---|
https://www.googleapis.com/auth/gmail.admin.quarantine |
Visualizzare e gestire i messaggi in quarantena. Necessario per rilasciare o rifiutare i messaggi, singolarmente o in batch. |
https://www.googleapis.com/auth/gmail.admin.quarantine.readonly |
Visualizzare i messaggi in quarantena. Sufficiente per elencare, cercare e recuperare i messaggi, elencare e recuperare le quarantene e ottenere lo stato delle operazioni batch. |
La tabella seguente mostra l'ambito accettato da ciascun metodo:
| Metodo | 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 |
✓ |
Segui il principio del privilegio minimo: richiedi l'ambito di sola lettura per le integrazioni che monitorano solo la quarantena.
Se una richiesta utilizza un token che non include un ambito accettato, l'API restituisce un errore 403 con il motivo ACCESS_TOKEN_SCOPE_INSUFFICIENT.
Crea un account di servizio
- Nella console Google Cloud, vai a IAM e amministrazione > Account di servizio e seleziona il progetto cloud Google Cloud in cui hai abilitato l'API.
- Fai clic su Crea service account, inserisci un nome come
quarantine-api-service-accounte fai clic su Crea e continua. Non è necessario concedere alcun ruolo IAM al service account. Fai clic su Fine. - Apri l'account di servizio e, nella scheda Dettagli, copia l'ID client OAuth 2. Si tratta di un numero di 21 cifre, ad esempio
109876543210987654321. Questo ID ti servirà nella sezione successiva. - Nella scheda Chiavi, fai clic su Aggiungi chiave > Crea nuova chiave, seleziona JSON e fai clic su Crea. Archivia in modo sicuro il file della chiave JSON scaricato.
Per saperne di più, consulta Crea credenziali per un service account.
Autorizza la delega a livello di dominio
Autorizza l'account di servizio ad accedere agli ambiti dell'API Admin Quarantine nel tuo account Google Workspace:
- Accedi alla Console di amministrazione Google come super amministratore.
- Vai a Sicurezza > Accesso e controllo dei dati > Controlli API.
- In Delega a livello di dominio, fai clic su Gestisci delega a livello di dominio.
- Fai clic su Aggiungi nuovo.
- Nel campo ID client, inserisci l'ID client OAuth 2.0 del service account. Non inserire l'indirizzo email del service account.
Nel campo Ambiti OAuth, inserisci uno dei seguenti ambiti:
- Per l'accesso in lettura e scrittura:
https://www.googleapis.com/auth/gmail.admin.quarantine - Per l'accesso di sola lettura:
https://www.googleapis.com/auth/gmail.admin.quarantine.readonly
- Per l'accesso in lettura e scrittura:
Fai clic su Autorizza.
Per maggiori dettagli, consulta Controlla l'accesso all'API con la delega a livello di dominio.
Ottieni un token di accesso
Per chiamare l'API, il service account simula l'identità di un amministratore impostando
la rivendicazione subject (sub) della richiesta del token sull'indirizzo email
dell'amministratore. L'amministratore deve disporre del
privilegio amministrativo richiesto.
Il seguente esempio di Python utilizza la libreria google-auth per ottenere un token di accesso:
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
Invia il token nell'intestazione Authorization di ogni richiesta:
Authorization: Bearer ACCESS_TOKEN
I token di accesso scadono dopo un'ora. Aggiorna le credenziali prima di ogni batch di richieste anziché memorizzare nella cache i token per lunghi periodi.
Risolvere i problemi di autorizzazione
| Stato HTTP | Motivo | Risoluzione |
|---|---|---|
401 UNAUTHENTICATED |
L'intestazione Authorization non è presente oppure il token non è valido o è scaduto. |
Ottieni un nuovo token di accesso e includilo come token di connessione. |
403 ACCESS_TOKEN_SCOPE_INSUFFICIENT |
Il token non include un ambito accettato dal metodo. | Richiedi l'ambito https://www.googleapis.com/auth/gmail.admin.quarantine per i metodi di rilascio e rifiuto e assicurati che l'ambito sia autorizzato nella Console di amministrazione. |
403 PERMISSION_DENIED |
L'amministratore di cui è stata eseguita la simulazione non dispone di un privilegio di quarantena amministrativa o non ha accesso alla quarantena che contiene il messaggio. | Concedi all'amministratore l'Accesso alla quarantena amministrativa o l'Accesso a quarantene limitate. |
403 SERVICE_DISABLED o 404 NOT_FOUND su ogni metodo |
L'API non è abilitata nel progetto cloud o il progetto non è registrato nel programma Anteprima per gli sviluppatori. | Attiva l'API e conferma la tua registrazione al programma Anteprima per gli sviluppatori di Google Workspace. |