Autoryzacja

Aplikacje autoryzują wywołania interfejsu API klienta rejestracji typu zero-touch za pomocą OAuth. W tym dokumencie objaśniono autoryzację interfejsu API dla dostawców usług zarządzania urządzeniami mobilnymi (EMM) i programistów IT dla firm. Po przeczytaniu tego dokumentu dowiesz się, jak autoryzować żądania do interfejsu API w swoich raportach i wyjaśnij użytkownikom wymagania dotyczące konta.

Krótkie wprowadzenie do autoryzacji

  • Aby skonfigurować projekt Google Cloud Platform z interfejsem API rejestracji typu zero-touch: i tajne klucze klienta OAuth, uruchom ten kreator.
  • Utwórz przykładowy kod krótkiego wprowadzenia dla Java, .NET lub Python. Używaj bibliotek klienta interfejsów API Google do obsługi innych języki.

Omówienie

Relacja między urządzeniem a zasobami klientów

  1. Co najmniej 1 administrator IT to użytkownik konta klienta rejestracji typu zero-touch.
  2. Administratorzy IT używają konta Google do uwierzytelniania.
  3. Żądania do interfejsu API przekazują token OAuth2, aby autoryzować żądania do interfejsu API w imieniu administrator IT.

Konta klientów

Konfiguracje, urządzenia i użytkownicy (administratorzy IT) organizacji należą do konto klienta. Konto klienta jest podobne do grupy i nie jest pojedynczego użytkownika. Sprzedawca konfiguruje klienta, gdy organizacja po raz pierwszy kupuje urządzenia na potrzeby rejestracji typu zero-touch. Administratorzy IT zarządzają innymi użytkownikami w w portalu rejestracji typu zero-touch.

Do identyfikowania kont interfejs API używa numerycznych identyfikatorów klienta. Reklamodawca przekazuje identyfikator klienta. jako część ścieżki adresu URL przy wywoływaniu metod interfejsu API. Aplikacja musi mieć dostęp do tych danych: klienta przed wywołaniem jakichkolwiek metod interfejsu API.

Przykład poniżej pokazuje, jak uzyskać konta klientów dla użytkownika, który autoryzuje wywołanie interfejsu 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']))

Musisz w aplikacji poruszać się po stronach wyników wyszukiwania, ponieważ w przykładzie powyżej wydrukowano tylko pierwsze 100 kont. Aby dowiedzieć się, jak to zrobić, przeczytaj Wyniki uporządkowane.

Organizacja zwykle ma 1 konto klienta, ale większe organizacje może używać oddzielnych kont klientów dla każdego oddziału. Ponieważ administrator IT może aby mieć dostęp do różnych kont klientów, Twoja aplikacja powinna ułatwiać korzystać z nowych kont klientów. W aplikacji oznacz każde konto klienta za pomocą atrybutu companyName.

Użytkownicy

Administratorzy IT autoryzują żądania do interfejsu API wysyłane w ich imieniu przez aplikację. Do autoryzowania żądań do interfejsu API, użytkownik aplikacji musi wykonać te czynności:

  1. Powiązanie konta Google z jego adresem e-mail.
  2. Dołącz do konta klienta przy użyciu tego samego adresu e-mail.
  3. Zaakceptuj Warunki korzystania z usługi rejestracji typu zero-touch.

Aby pomóc użytkownikom aplikacji w konfiguracji, skorzystaj z naszych wskazówek dla administratorów IT w artykule Pobieranie rozpoczęto i powiąż konto Google. w Twojej dokumentacji.

Zarządzanie użytkownikami

Administratorzy IT zarządzają użytkownikami na kontach klientów w ramach rejestracji typu zero-touch portalu rejestracji. Użytkownicy na koncie klienta mają przypisaną rolę Właściciel lub Administrator. Obie role mają taki sam dostęp do interfejsu API klienta, ale Właściciel może zarządzać innymi użytkownikami.

Akceptacja Warunków korzystania z usługi

Zanim użytkownicy aplikacji będą mogli autoryzować wywołania interfejsu API, muszą zaakceptować najnowsze Warunki korzystania z usługi Dzieje się tak, gdy administratorzy IT po raz pierwszy stosują rejestrację typu zero-touch lub gdy zaktualizować Warunki korzystania z usługi. Jeśli użytkownik nie zaakceptował najnowszych Warunków korzystania z usługi, interfejs API zwraca Kod stanu HTTP 403 Forbidden i treść odpowiedzi zawiera TosError

Portal automatycznie prosi użytkowników o zaakceptowanie najnowszych Warunków korzystania z usługi podczas podpisu cal Aby zapoznać się z sugerowanymi sposobami działania, jakie może zastosować Twoja aplikacja, przeczytaj Warunki korzystania z usługi usługi w przewodniku po integracji usług EMM.

Dodaj autoryzację do aplikacji

Każde żądanie wysyłane przez aplikację do interfejsu API klienta musi zawierać autoryzację token. Token stanowi też dla Google identyfikator aplikacji. Ponieważ Customer API uzyskuje dostęp do danych użytkownika, autoryzacja musi pochodzić od właściciela i skalowalnych danych. Aplikacja przekazuje administratorom IT autoryzację interfejsu API przy użyciu protokołu OAuth 2.0. .

Instrukcje

Udostępniamy krótkie przewodniki po językach Java, .NET aplikacje w języku Python. Jeśli używasz innego języka, postępuj zgodnie z instrukcjami aby skonfigurować autoryzację .

Więcej informacji o autoryzacji znajdziesz w artykule Korzystanie z protokołu OAuth 2.0 na potrzeby uzyskiwania dostępu do Google interfejsów API.

Zakresy autoryzacji

Użyj zakresu autoryzacji interfejsu API Aby poprosić o nie w aplikacji https://www.googleapis.com/auth/androidworkzerotouchemm, token dostępu OAuth 2.0.

Parametr zakresu kontroluje zbiór zasobów i operacji, do których dostęp ma dostęp token zezwala na wywołania. Tokeny dostępu są ważne tylko dla zbioru operacji i zasobów opisanych w zakresie żądania tokena. Interfejs API obejmuje wszystkie metody i zasoby z wyświetlonym pojedynczym zakresem rejestracji typu zero-touch. powyżej.

Przykład zakresu rejestracji typu zero-touch używanego z interfejsem API Google zapoznaj się z krótkimi przewodnikami dotyczącymi Java, .NET i Python. Aby dowiedzieć się więcej o korzystaniu z zakresów interfejsów API Google, przeczytaj artykuł Korzystanie z zakresów interfejsów API Google. OAuth 2.0 na dostęp do interfejsów API Google.

Sprawdzone metody dotyczące kluczy interfejsu API

Gdy używasz kluczy interfejsu API w aplikacjach, dbaj o ich bezpieczeństwo. Ujawnienie danych logowania publicznie może spowodować, że konto zostanie zostało przejęte, co może prowadzić do nieoczekiwanych opłat na koncie. Aby zachować aby zabezpieczyć klucze interfejsu API, postępuj zgodnie z tymi sprawdzonymi metodami:

Nie umieszczaj kluczy interfejsu API bezpośrednio w kodzie
Klucze interfejsu API osadzone w kodzie mogą zostać przypadkowo ujawnione publiczne – na przykład jeśli zapomnisz usunąć klucze z kodu, w udostępnianiu. Zamiast umieszczać klucze interfejsu API w aplikacjach, przechowuj je w zmiennych środowiskowych lub w plikach poza źródłem aplikacji drzewo.
Nie przechowuj kluczy interfejsu API w plikach w drzewie źródłowym aplikacji
Jeśli przechowujesz klucze interfejsu API w plikach, przechowuj je poza folderami drzewo źródłowe, aby mieć pewność, że klucze nie trafią do kodu źródłowego systemu. Jest to szczególnie ważne, jeśli korzystasz z publicznego kodu źródłowego takich jak GitHub.
Ogranicz klucze interfejsu API, aby mogły być używane tylko przez adresy IP, adresy URL stron odsyłających i aplikacje mobilne, które ich potrzebują
Ograniczając adresy IP, adresy URL stron odsyłających oraz aplikacje mobilne, które mogą używać każdego klucza, możesz zmniejszyć wpływ przejętego klucza interfejsu API. Dostępne opcje w Konsoli interfejsów API Google wskaż hosty i aplikacje, które mogą używać poszczególnych kluczy. otwórz stronę Dane logowania, a następnie utwórz nowy interfejs API z odpowiednimi ustawieniami lub edytuj ustawienia interfejsu API .
Usuń niepotrzebne klucze interfejsu API
Aby zminimalizować narażenie na atak, usuń wszystkie klucze interfejsu API, których nie masz na dłużej.
Co jakiś czas odświeżaj klucze interfejsu API
Klucze interfejsu API możesz ponownie wygenerować w Konsoli interfejsów API Google. Aby to zrobić, otwórz Strona Dane logowania, wybierając klucz interfejsu API i klikając Wygeneruj ponownie dla każdego klucza. Następnie zaktualizuj aplikacje, aby korzystały z nowo wygenerowanego pliku klawiszy. Stare klucze będą nadal działać przez 24 godziny po wygenerowaniu kluczy zastępcze.
Sprawdź swój kod, zanim go opublikujesz
Upewnij się, że kod nie zawiera kluczy interfejsu API ani żadnych innych prywatnych przed udostępnieniem kodu publicznie.