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żyj bibliotek klienta interfejsu API Google, aby obsługiwać inne języki.
Omówienie
- Co najmniej 1 administrator IT to użytkownik konta klienta rejestracji typu zero-touch.
- Administratorzy IT używają konta Google do uwierzytelniania.
- Żą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 skonfiguruje klienta, gdy organizacja kupi pierwsze urządzenia przeznaczone do rejestracji typu zero-touch. Administratorzy IT zarządzają innymi użytkownikami w swojej organizacji za pomocą portalu rejestracji typu zero-touch.
Interfejs API używa numerycznych identyfikatorów klientów do identyfikowania kont. Podczas wywoływania metod interfejsu API przekazujesz identyfikator klienta jako część ścieżki adresu URL. Zanim wywołasz jakiekolwiek metody interfejsu API, aplikacja musi pobrać identyfikator klienta użytkownika.
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 interfejsu API wysyłane przez Twoją aplikację w ich imieniu. Do autoryzowania żądań do interfejsu API, użytkownik aplikacji musi wykonać te czynności:
- Połącz konto Google z adresem e-mail.
- Dołącz do konta klienta przy użyciu tego samego adresu e-mail.
- 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ą 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 zobaczyć sugerowane podejścia, które możesz zastosować w aplikacji, przeczytaj artykuł Zarządzanie Warunkami korzystania z usługi w przewodniku po integracji z usługami 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 zestaw zasobów i operacji, do których wywołania zezwala token dostępu. 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 w ramach pojedynczego zakresu rejestracji typu zero-touch pokazanego powyżej.
Przykład zakresu rejestracji bez interwencji użytkownika używanego z biblioteką klienta interfejsu API Google znajdziesz w krótkich przewodnikach dotyczących Java, .NET i Pythona. 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 API osadzone w kodzie mogą zostać przypadkowo udostępnione publicznie, np. jeśli zapomnisz usunąć je z kodu, który udostępniasz. 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 używasz publicznego systemu zarządzania kodem źródłowym, takiego 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. Możesz określić hosty i aplikacje, które mogą używać poszczególnych kluczy w Konsoli interfejsów API Google. Aby to zrobić, otwórz stronę danych logowania, a następnie utwórz nowy klucz API z odpowiednimi ustawieniami lub zmodyfikuj ustawienia klucza 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.