Autorizzazione

Le app autorizzano le chiamate all'API del cliente per la registrazione zero-touch tramite OAuth. Questo documento spiega l'autorizzazione dell'API per provider per la gestione della mobilità aziendale (EMM) e sviluppatori IT aziendali. Dopo aver letto questo documento, saprai come autorizzare le richieste API nel tuo app e spiegare i requisiti dell'account agli utenti dell'app.

Guida rapida all'autorizzazione

  • Per configurare un progetto Google Cloud con l'API di registrazione zero-touch e client secret OAuth, esegui questa procedura guidata.
  • Crea il codice campione della guida rapida per Java, .NET o Python. Utilizza le librerie client API di Google per supportare altri lingue diverse.

Panoramica

Rapporto tra dispositivo e risorse del cliente

  1. Uno o più amministratori IT sono utenti in un account cliente con registrazione zero-touch.
  2. Gli amministratori IT utilizzano un Account Google per autenticarsi.
  3. Le richieste API passano un token OAuth2 per autorizzare le richieste API per conto di un amministratore IT.

Account cliente

Le configurazioni, i dispositivi e gli utenti (amministratori IT) di un'organizzazione appartengono a un all'account del cliente. L'account di un cliente è simile a un gruppo e non è singolo utente. Un rivenditore configura un cliente per la prima volta all'organizzazione acquista dispositivi per la registrazione zero-touch. Gli amministratori IT gestiscono altri utenti in la propria organizzazione usando il portale della registrazione zero-touch.

L'API utilizza gli ID cliente numerici per identificare gli account. Devi passare l'ID cliente come parte del percorso dell'URL quando chiami i metodi API. La tua app deve ottenere l'accesso l'ID cliente prima di chiamare qualsiasi metodo API.

L'esempio seguente mostra come ottenere gli account cliente per l'utente che autorizza la chiamata API:

Java

AndroidProvisioningPartner.Customers.List accountRequest = service.customers().list();
accountRequest.setPageSize(100);
CustomerListCustomersResponse accountResponse = accountRequest.execute();

List<Company> customers = accountResponse.getCustomers();
if (customers == null || customers.isEmpty()) {
    // No accounts found for the user. Confirm the Google Account
    // that authorizes the request can access the zero-touch portal.
    System.out.println("No zero-touch enrollment account found.");
} else {
    // Print the customers in this page.
    for (Company customer : customers) {
        System.out.format("%s\tcustomers/%d\n",
              customer.getCompanyName(), customer.getCompanyId());
    }
}

.NET

CustomersResource.ListRequest accountRequest = service.Customers.List();
accountRequest.PageSize = 100;
CustomerListCustomersResponse accountResponse = accountRequest.Execute();
IList<Company> customers = accountResponse.Customers ?? new List<Company>();
if (customers.Count == 0)
{
    // No accounts found for the user. Confirm the Google Account
    // that authorizes the request can access the zero-touch portal.
    Console.WriteLine("No zero-touch enrollment account found.");
}
foreach (Company customer in customers)
{
    Console.WriteLine("{0}\tcustomers/{1}",
                      customer.CompanyName,
                      customer.CompanyId);
}

Python

response = service.customers().list(pageSize=100).execute()
if 'customers' not in response:
  # No accounts found for the user. Confirm the Google Account
  # that authorizes the request can access the zero-touch portal.
  print('No zero-touch enrollment account found.')
  response['customers'] = []

for customer in response['customers']:
  print('{0}\tcustomers/{1}'.format(
      customer['companyName'], customer['companyId']))

Nella tua app devi navigare nelle pagine dei risultati dell'account dell'esempio riportato sopra mostra solo i primi 100 account. Per scoprire come fare, consulta Risultati impaginati.

Un'organizzazione di solito ha un account cliente, ma le organizzazioni più grandi potrebbero utilizzare account cliente separati per ogni reparto. Perché un amministratore IT può essere membro di account cliente diversi, la tua app deve aiutare gli utenti a trovare utilizzare nuovi account cliente. Nell'app, etichetta ogni account cliente utilizzando companyName.

Utenti

Gli amministratori IT autorizzano le richieste API inviate dalla tua app per loro conto. A autorizzare le richieste API, l'utente dell'app dovrà:

  1. Associare un Account Google al relativo indirizzo email.
  2. Unisciti a un account cliente utilizzando lo stesso indirizzo email.
  3. Accetta i Termini di servizio (TdS) per i clienti relativi alla registrazione zero-touch.

Per aiutare gli utenti della tua app a eseguire la configurazione, riutilizza le nostre indicazioni per gli amministratori IT in Scaricare ha avviato e Associa un Account Google nella tua documentazione.

Gestione utenti

Gli amministratori IT gestiscono gli utenti per i loro account dei clienti nel gruppo zero-touch portale di registrazione. Gli utenti di un account cliente hanno un ruolo Proprietario o Amministratore. Entrambi i ruoli hanno lo stesso accesso all'API del cliente, ma Un Proprietario può gestire altri utenti.

Accettazione dei TdS

Prima che gli utenti della tua app possano autorizzare le chiamate API, devono accettare la versione più recente TdS Questo accade quando gli amministratori IT utilizzano per la prima volta la registrazione zero-touch o quando aggiornare i TdS. Quando un utente non ha accettato i TdS più recenti, l'API restituisce un codice di stato HTTP 403 Forbidden e il corpo della risposta contiene un TosError

Il portale chiede automaticamente agli utenti di accettare i TdS più recenti quando accedono in. Per conoscere gli approcci suggeriti che la tua app potrebbe includere, leggi Gestire i Termini di Service nella guida all'integrazione di EMM.

Aggiungi l'autorizzazione all'app

Ogni richiesta che la tua app invia all'API del cliente deve includere un'autorizzazione di accesso. Il token, inoltre, identifica l'applicazione per Google. Poiché l'API del cliente accede ai dati utente, l'autorizzazione deve provenire dal proprietario del e i dati di Google Cloud. L'app delega l'autorizzazione API agli amministratori IT utilizzando OAuth 2.0 del protocollo.

Istruzioni

Forniamo guide rapide per Java, .NET e di Python. Se utilizzi una lingua diversa, segui le due i passaggi riportati di seguito per configurare l'autorizzazione dell'app.

Per saperne di più sull'autorizzazione, vedi Utilizzare OAuth 2.0 per accedere a Google per le API.

Ambiti di autorizzazione

Utilizza l'ambito di autorizzazione API https://www.googleapis.com/auth/androidworkzerotouchemm nella tua app per effettuare una richiesta un token di accesso OAuth 2.0.

Un parametro di ambito controlla l'insieme di risorse e operazioni a cui un accesso di accesso rapido consente le chiamate. I token di accesso sono validi solo per il set di operazioni e le risorse descritte nell'ambito della richiesta di token. L'API copre tutti gli aspetti i metodi e le risorse con l'ambito della registrazione zero-touch singolo mostrato in alto.

Per un esempio dell'ambito della registrazione zero-touch utilizzato con l'API di Google libreria client, consulta le guide rapide per Java, .NET e Python. Per scoprire di più sull'utilizzo degli ambiti delle API di Google, leggi l'articolo Utilizzo OAuth 2.0 per accedere alle API di Google.

Best practice per le chiavi API

Quando utilizzi le chiavi API nelle tue applicazioni, assicurati di mantenerle al sicuro. L'esposizione pubblica delle credenziali può comportare la compromissione dell'account compromesso, il che potrebbe comportare addebiti imprevisti sul tuo account. Per mantenere le tue chiavi API, segui queste best practice:

Non incorporare le chiavi API direttamente nel codice
Le chiavi API incorporate nel codice possono essere esposte per errore come pubblico, ad esempio se dimentichi di rimuovere le chiavi dal codice condividi. Anziché incorporare le chiavi API nelle applicazioni, archiviale in in variabili di ambiente o in file esterni all'origine dell'applicazione albero di Natale.
Non archiviare chiavi API nei file all'interno dell'albero di origine dell'applicazione
Se archivi le chiavi API nei file, mantieni i file al di fuori struttura del codice sorgente per assicurarti che le chiavi non finiscano nel controllo del codice sorgente di un sistema operativo completo. Ciò è particolarmente importante se utilizzi un codice sorgente pubblico di un sistema di gestione dei dati come GitHub.
Limita le chiavi API in modo che vengano utilizzate solo da indirizzi IP, URL referrer e le app mobile che ne hanno bisogno
Limitando gli indirizzi IP, gli URL referrer e le app mobile che possono usare ogni chiave, puoi ridurre l'impatto di una chiave API compromessa. Puoi Specificare gli host e le app che possono utilizzare ciascuna chiave dalla Console API di Google aprendo la pagina Credenziali e poi creando una nuova API con le impostazioni desiderate oppure la modifica delle impostazioni di un'API chiave.
Elimina le chiavi API non necessarie
Per ridurre al minimo l'esposizione agli attacchi, elimina tutte le chiavi API che non non ne hanno più bisogno.
Rigenera le chiavi API periodicamente
Puoi rigenerare le chiavi API dalla console API di Google aprendo la Pagina Credenziali, selezionando una chiave API e facendo clic su Rigenera. per ogni chiave. Poi aggiorna le applicazioni in modo che utilizzino lo standard chiave. Le chiavi precedenti continueranno a funzionare per 24 ore dopo la generazione chiavi sostitutive.
Rivedi il codice prima di rilasciarlo pubblicamente
Assicurati che il tuo codice non contenga chiavi API o altre chiavi private informazioni prima di rendere disponibile pubblicamente il codice.