Otorisasi

Aplikasi mengizinkan panggilan ke API pelanggan pendaftaran zero-touch menggunakan OAuth. Dokumen ini menjelaskan otorisasi API untuk penyedia pengelolaan mobilitas perusahaan (EMM) dan developer IT perusahaan. Setelah membaca dokumen ini, Anda akan mengetahui cara mengizinkan permintaan API di aplikasi dan menjelaskan persyaratan akun kepada pengguna aplikasi.

Panduan memulai otorisasi

  • Untuk menyiapkan project Google Cloud Platform dengan API pendaftaran zero-touch dan rahasia klien OAuth, jalankan wizard ini.
  • Buat kode contoh panduan memulai untuk Java, .NET, atau Python. Gunakan library klien API Google untuk mendukung bahasa lain.

Ringkasan

Hubungan resource pelanggan dan perangkat

  1. Satu atau beberapa admin IT adalah pengguna di akun pelanggan pendaftaran zero-touch.
  2. Admin IT menggunakan Akun Google untuk mengautentikasi diri mereka sendiri.
  3. Permintaan API meneruskan token OAuth2 untuk mengizinkan permintaan API atas nama admin IT.

Akun pelanggan

Konfigurasi, perangkat, dan pengguna (admin IT) organisasi adalah milik akun pelanggan. Akun pelanggan mirip dengan grup dan bukan pengguna individu. Reseller menyiapkan pelanggan saat organisasi pertama kali membeli perangkat untuk pendaftaran zero-touch. Admin IT mengelola pengguna lain di organisasi menggunakan portal pendaftaran zero-touch.

API menggunakan ID pelanggan numerik untuk mengidentifikasi akun. Anda meneruskan ID pelanggan sebagai bagian dari jalur URL saat memanggil metode API. Aplikasi Anda perlu mendapatkan ID pelanggan pengguna sebelum memanggil metode API apa pun.

Contoh di bawah ini menunjukkan cara mendapatkan akun pelanggan untuk pengguna yang memberikan otorisasi panggilan 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']))

Di aplikasi, Anda harus membuka halaman hasil akun karena contoh di atas hanya mencetak 100 akun pertama. Untuk mempelajari cara melakukannya, baca Hasil yang di-page.

Organisasi biasanya memiliki satu akun pelanggan, tetapi organisasi yang lebih besar dapat menggunakan akun pelanggan terpisah untuk setiap divisi. Karena admin IT dapat menjadi anggota akun pelanggan yang berbeda, aplikasi Anda harus membantu pengguna menemukan dan menggunakan akun pelanggan baru. Di aplikasi Anda, beri label setiap akun pelanggan menggunakan nilai companyName.

Pengguna

Admin IT mengizinkan permintaan API yang dikirim aplikasi Anda atas nama mereka. Untuk mengizinkan permintaan API, pengguna aplikasi Anda perlu melakukan hal berikut:

  1. Mengaitkan Akun Google dengan alamat emailnya.
  2. Bergabung ke akun pelanggan menggunakan alamat email yang sama.
  3. Menyetujui Persyaratan Layanan (ToS) pelanggan pendaftaran zero-touch.

Untuk membantu pengguna aplikasi Anda melakukan persiapan, gunakan kembali panduan kami untuk admin IT di bagian Memulai dan Mengaitkan Akun Google dalam dokumentasi Anda sendiri.

Pengelolaan pengguna

Admin IT mengelola pengguna untuk akun pelanggan mereka di portal pendaftaran zero-touch. Pengguna di akun pelanggan memiliki peran Pemilik atau Admin. Kedua peran memiliki akses yang sama ke API pelanggan, tetapi Pemilik dapat mengelola pengguna lainnya.

Persetujuan ToS

Sebelum pengguna aplikasi dapat mengizinkan panggilan API, mereka harus menyetujui ToS terbaru. Hal ini terjadi saat admin IT pertama kali menggunakan pendaftaran zero-touch atau saat kami mengupdate ToS. Jika pengguna belum menyetujui ToS terbaru, API akan menampilkan kode status HTTP 403 Forbidden dan isi respons berisi TosError.

Portal akan otomatis meminta pengguna untuk menyetujui ToS terbaru saat mereka login. Untuk melihat pendekatan yang disarankan yang dapat disertakan oleh aplikasi Anda, baca Menangani Persyaratan Layanan di panduan integrasi EMM.

Menambahkan otorisasi ke aplikasi

Setiap permintaan yang dikirimkan aplikasi Anda ke API pelanggan harus menyertakan token otorisasi. Token ini juga mengidentifikasi aplikasi Anda ke Google. Karena API pelanggan mengakses data pengguna, otorisasi harus berasal dari pemilik data. Aplikasi Anda mendelegasikan otorisasi API kepada admin IT menggunakan protokol OAuth 2.0.

Petunjuk

Kami menyediakan panduan memulai untuk aplikasi Java, .NET, dan Python. Jika Anda menggunakan bahasa lain, ikuti dua langkah di bawah ini untuk menyiapkan otorisasi untuk aplikasi Anda.

Untuk mempelajari otorisasi lebih lanjut, baca Menggunakan OAuth 2.0 untuk Mengakses Google API.

Cakupan otorisasi

Gunakan cakupan otorisasi API https://www.googleapis.com/auth/androidworkzerotouchemm di aplikasi Anda untuk meminta token akses OAuth 2.0.

Parameter cakupan mengontrol sekumpulan resource dan operasi yang diizinkan untuk dipanggil oleh token akses. Token akses hanya valid untuk serangkaian operasi dan resource yang dijelaskan dalam cakupan permintaan token. API ini mencakup semua metode dan resource dengan cakupan pendaftaran zero-touch tunggal yang ditampilkan di atas.

Untuk melihat contoh cakupan pendaftaran zero-touch yang digunakan dengan library klien Google API, lihat panduan memulai untuk Java, .NET, dan Python. Untuk mempelajari lebih lanjut cara menggunakan cakupan Google API, baca Menggunakan OAuth 2.0 untuk Mengakses Google API.

Praktik terbaik untuk kunci API

Ketika Anda menggunakan kunci API di aplikasi Anda, pastikan untuk menjaganya tetap aman. Menampilkan kredensial Anda secara publik dapat menyebabkan akun Anda disusupi, yang dapat menyebabkan tagihan tidak terduga pada akun Anda. Untuk menjaga agar kunci API Anda tetap aman, ikuti praktik terbaik berikut:

Jangan sematkan kunci API secara langsung di dalam kode
Kunci API yang disematkan dalam kode dapat secara tidak sengaja terekspos ke publik—misalnya, jika Anda lupa menghapus kunci dari kode yang Anda bagikan. Daripada menyematkan kunci API dalam aplikasi Anda, sebaiknya simpan kunci tersebut dalam variabel lingkungan atau dalam file di luar hierarki sumber aplikasi Anda.
Jangan menyimpan kunci API di dalam file yang berada di dalam hierarki sumber aplikasi Anda
Jika Anda menyimpan kunci API dalam file, simpan file tersebut di luar hierarki sumber aplikasi untuk membantu memastikan kunci Anda tidak masuk ke dalam sistem kontrol kode sumber Anda. Hal ini sangat penting jika Anda menggunakan sistem pengelolaan kode sumber yang terbuka untuk publik seperti GitHub.
Batasi kunci API Anda agar digunakan hanya oleh alamat IP, URL perujuk, dan aplikasi seluler yang membutuhkannya
Dengan membatasi alamat IP, URL perujuk, dan aplikasi seluler yang dapat menggunakan setiap kunci, Anda dapat mengurangi dampak kunci API yang disusupi. Anda dapat menentukan host dan aplikasi yang dapat menggunakan setiap kunci dari Konsol API Google dengan membuka halaman Kredensial, lalu membuat kunci API baru dengan setelan yang Anda inginkan, atau mengedit setelan kunci API.
Menghapus kunci API yang tidak diperlukan
Untuk meminimalkan paparan terhadap serangan, hapus kunci API yang tidak lagi Anda perlukan.
Membuat ulang kunci API secara berkala
Anda dapat membuat ulang kunci API dari Konsol API Google dengan membuka halaman Credentials, memilih kunci API, lalu mengklik Regenerate key untuk setiap kunci. Kemudian, update aplikasi Anda untuk menggunakan kunci yang baru dibuat. Kunci lama akan terus berfungsi selama 24 jam setelah Anda membuat kunci pengganti.
Tinjau kode Anda sebelum merilisnya ke publik
Pastikan kode Anda tidak berisi kunci API atau informasi pribadi lainnya sebelum Anda membuat kode tersebut tersedia untuk publik.