Pelajari autentikasi dan otorisasi

Autentikasi dan otorisasi adalah mekanisme yang digunakan untuk memverifikasi identitas dan akses ke resource. Dokumen ini mengidentifikasi istilah kunci yang harus Anda ketahui sebelum menerapkan autentikasi dan otorisasi dalam aplikasi.

Autentikasi mengidentifikasi siapa yang membuat permintaan. Otorisasi mengidentifikasi resource apa yang dapat diakses pemohon dan tingkat akses yang dimilikinya. Otentikasi adalah prasyarat untuk otorisasi. Anda tidak dapat menentukan resource yang akan diakses tanpa terlebih dahulu menentukan identitas pemohon. Untuk definisi yang lebih detail, lihat bagian Terminologi penting.

Pertimbangkan contoh sederhana reservasi hotel berikut. Saat Anda tiba di hotel, resepsionis akan meminta tanda pengenal Anda untuk memverifikasi reservasi Anda. ID Anda mengautentikasi Anda ke hotel. Petugas resepsionis memberi Anda kunci hotel. Kunci ini memberi Anda akses ke resource tertentu di hotel seperti kamar hotel, gym, dan business center. Kunci hotel mengizinkan Anda mengakses resource tersebut.

Ringkasan proses

Diagram berikut menunjukkan langkah-langkah tingkat tinggi autentikasi dan otorisasi untuk Google Workspace API:

Langkah-langkah tingkat tinggi dalam penerapan autentikasi dan otorisasi
Gambar 1. Langkah-langkah tingkat tinggi dalam penerapan autentikasi dan otorisasi
  1. Konfigurasi project dan aplikasi Google Cloud Anda: Selama tahap pengembangan, daftarkan aplikasi di konsol Google Cloud untuk menentukan cakupan otorisasi dan kredensial akses untuk mengautentikasi aplikasi Anda dengan kunci API, kredensial pengguna akhir, atau kredensial akun layanan.

  2. Autentikasi aplikasi Anda untuk mendapatkan akses: Saat aplikasi Anda berjalan, kredensial akses yang terdaftar akan dievaluasi. Jika aplikasi Anda diautentikasi sebagai pengguna akhir, perintah login mungkin akan ditampilkan.

  3. Minta resource: Jika aplikasi Anda memerlukan akses ke resource Google, aplikasi akan meminta Google menggunakan cakupan akses relevan yang telah didaftarkan sebelumnya.

  4. Minta izin pengguna: Jika aplikasi Anda mengautentikasi sebagai pengguna akhir, Google akan menampilkan layar izin OAuth sehingga pengguna dapat memutuskan apakah akan memberi aplikasi Anda akses ke data yang diminta.

  5. Kirim permintaan resource yang disetujui: Jika pengguna mengizinkan cakupan akses, app bundle Anda akan memaketkan kredensial dan cakupan akses yang disetujui pengguna ke dalam permintaan. Permintaan dikirim ke server otorisasi Google untuk mendapatkan token akses.

  6. Google menampilkan token akses: Token akses berisi daftar cakupan akses yang diberikan. Jika daftar cakupan yang ditampilkan lebih terbatas daripada cakupan akses yang diminta, aplikasi Anda akan menonaktifkan fitur apa pun yang dibatasi oleh token.

  7. Mengakses resource yang diminta: Aplikasi Anda menggunakan token akses dari Google untuk memanggil API yang relevan dan mengakses resource.

  8. Dapatkan token refresh (opsional): Jika aplikasi Anda memerlukan akses ke Google API setelah token akses tunggal digunakan, aplikasi tersebut dapat memperoleh token refresh.

  9. Meminta lebih banyak resource: Jika akses tambahan diperlukan, aplikasi Anda akan meminta pengguna untuk memberikan cakupan akses baru, yang menghasilkan permintaan baru untuk mendapatkan token akses (langkah 3–6).

Terminologi penting

Berikut adalah daftar istilah yang terkait dengan autentikasi dan otorisasi:

Autentikasi

Tindakan untuk memastikan bahwa utama, yang dapat berupa pengguna atau aplikasi yang bertindak atas nama pengguna, adalah benar-benar dirinya. Saat menulis aplikasi Google Workspace, Anda harus mengetahui jenis autentikasi berikut:

Autentikasi pengguna
Tindakan pengguna mengautentikasi (login) ke aplikasi Anda. Autentikasi pengguna biasanya dilakukan melalui proses login yang mengharuskan pengguna menggunakan kombinasi nama pengguna dan sandi untuk memverifikasi identitas ke aplikasi. Autentikasi pengguna dapat dimasukkan ke dalam aplikasi menggunakan Login dengan Google.
Autentikasi aplikasi
Tindakan aplikasi yang melakukan autentikasi langsung ke layanan Google atas nama pengguna yang menjalankan aplikasi. Autentikasi aplikasi biasanya dilakukan menggunakan kredensial yang telah dibuat sebelumnya dalam kode aplikasi Anda.
Otorisasi

Izin atau "otoritas" yang harus dimiliki akun utama untuk mengakses data atau melakukan operasi. Tindakan otorisasi dilakukan melalui kode yang Anda tulis dalam aplikasi Anda. Kode ini memberi tahu pengguna bahwa aplikasi ingin bertindak atas nama mereka dan, jika diizinkan, akan menggunakan kredensial unik aplikasi Anda untuk mendapatkan token akses dari Google yang digunakan untuk mengakses data atau menjalankan operasi.

Kredensial

Suatu bentuk identifikasi yang digunakan dalam keamanan perangkat lunak. Dalam hal autentikasi, kredensial sering kali merupakan kombinasi nama pengguna dan sandi. Dalam hal otorisasi untuk Google Workspace API, kredensial biasanya merupakan bentuk identifikasi, seperti string rahasia unik, yang hanya dikenal antara developer aplikasi dan server autentikasi. Google mendukung kredensial autentikasi ini: kunci API, Client ID OAuth 2.0, dan akun layanan.

Kunci API
Kredensial yang digunakan untuk meminta akses ke data publik, seperti data yang disediakan menggunakan Maps API atau file Google Workspace yang dibagikan menggunakan setelan "Siapa saja di Internet yang memiliki link ini" dalam setelan berbagi Google Workspace.
Client ID OAuth 2
Kredensial yang digunakan untuk meminta akses ke data milik pengguna. Ini adalah kredensial utama yang digunakan saat meminta akses ke data menggunakan Google Workspace API. Kredensial ini memerlukan izin pengguna.
Rahasia klien
String karakter yang seharusnya hanya diketahui oleh aplikasi dan server otorisasi. Rahasia klien melindungi data pengguna dengan hanya memberikan token kepada pemohon yang diotorisasi. Anda tidak boleh menyertakan rahasia klien yang tidak dienkripsi dalam aplikasi Anda. Sebaiknya simpan rahasia klien dengan aman. Untuk mengetahui informasi selengkapnya, baca bagian Menangani kredensial klien dengan aman.
Kunci akun layanan
Digunakan oleh akun layanan untuk mendapatkan otorisasi ke layanan Google.
Service account
Kredensial yang digunakan untuk interaksi server ke server, seperti aplikasi tanpa wajah yang berjalan sebagai proses untuk mengakses beberapa data atau melakukan operasi tertentu. Akun layanan biasanya digunakan untuk mengakses data dan operasi berbasis cloud. Namun, jika digunakan dengan delegasi otoritas tingkat domain, kredensial ini dapat digunakan untuk mengakses data pengguna.
Cakupan

String URI OAuth 2.0 yang menentukan tingkat akses ke resource atau tindakan yang diberikan ke aplikasi. Untuk Google Workspace, URI cakupan otorisasi berisi nama aplikasi Google Workspace, jenis data yang diakses, dan tingkat akses. Pengguna aplikasi Anda dapat meninjau cakupan yang diminta dan memilih akses yang akan diberikan, lalu server autentikasi Google akan menampilkan cakupan yang diizinkan ke aplikasi Anda dalam token akses. Untuk mengetahui detail selengkapnya, baca Cara memilih cakupan untuk aplikasi.

Server otorisasi

Server Google untuk memberikan akses, menggunakan token akses, ke data dan operasi yang diminta aplikasi.

Kode otorisasi

Kode yang dikirim dari server otorisasi yang digunakan untuk mendapatkan token akses. Kode hanya diperlukan jika jenis aplikasi Anda adalah aplikasi server web atau aplikasi terinstal.

Token akses

Token yang memberikan akses ke Google Workspace API. Satu token akses dapat memberikan berbagai derajat akses ke beberapa API, yang dikenal sebagai cakupan. Kode otorisasi aplikasi Anda meminta token akses dan menggunakannya untuk memanggil Google Workspace API.

Server resource

Server yang menghosting API yang ingin dipanggil oleh aplikasi Anda.

Framework OAuth 2.0

Standar yang dapat digunakan aplikasi Anda untuk memberinya "akses yang didelegasikan yang aman" atau akses ke data dan operasi atas nama pengguna aplikasi. Mekanisme autentikasi dan otorisasi yang digunakan dalam aplikasi Anda mewakili penerapan framework OAuth 2.0 Anda.

Kepala sekolah

Entity, juga dikenal sebagai identitas, yang dapat diberi akses ke resource. Google Workspace API mendukung dua jenis akun utama: akun pengguna dan akun layanan. Untuk detail selengkapnya, lihat Kepala Sekolah.

Jenis data

Dalam konteks autentikasi dan otorisasi, jenis data mengacu pada entity yang memiliki data yang ingin diakses oleh aplikasi Anda. Ada tiga tipe data:

Data domain publik
Data dapat diakses oleh siapa saja, seperti beberapa data Google Maps. Data ini biasanya diakses menggunakan kunci API.
Data pengguna akhir
Data milik pengguna akhir atau grup tertentu, seperti file Google Drive pengguna tertentu. Jenis data ini biasanya diakses menggunakan client ID atau akun layanan OAuth 2.
Data cloud
Data yang dimiliki oleh project Google Cloud. Jenis data ini biasanya diakses oleh akun layanan.
Izin pengguna

Langkah otorisasi yang mengharuskan pengguna aplikasi Anda untuk memberikan otorisasi kepada aplikasi agar dapat mengakses data dan melakukan operasi atas nama pengguna.

Jenis aplikasi

Jenis aplikasi yang akan dibuat. Saat membuat kredensial menggunakan Konsol Google Cloud, Anda akan diminta untuk memilih jenis aplikasi. Jenis aplikasi adalah: Aplikasi web (JavaScript), Android, aplikasi Chrome, iOS, TV dan perangkat Input Terbatas, aplikasi Desktop (juga disebut "aplikasi terinstal"), dan Universal Windows Platform (UWP).

Service account

Jenis Akun Google khusus yang dimaksudkan untuk mewakili pengguna non-manusia yang perlu mengautentikasi dan diberi otorisasi untuk mengakses data. Aplikasi Anda mengasumsikan identitas akun layanan untuk memanggil Google API, sehingga pengguna tidak terlibat langsung. Dengan sendirinya, akun layanan tidak dapat digunakan untuk mengakses data pengguna; data biasanya diakses menggunakan Workspace API. Namun, akun layanan dapat mengakses data pengguna dengan menerapkan delegasi otoritas di seluruh domain. Untuk mengetahui detail selengkapnya, lihat Memahami akun layanan.

Delegasi otoritas di seluruh domain

Fitur administrasi yang dapat mengizinkan aplikasi untuk mengakses data pengguna atas nama pengguna di organisasi Google Workspace. Delegasi tingkat domain dapat digunakan untuk melakukan tugas terkait admin pada data pengguna. Untuk mendelegasikan otorisasi dengan cara ini, administrator Google Workspace menggunakan akun layanan dengan OAuth 2.0. Karena kecanggihan fitur ini, hanya admin super yang dapat mengaktifkan pendelegasian otoritas seluruh domain. Untuk mengetahui detail selengkapnya, lihat Mendelegasikan otoritas seluruh domain ke akun layanan.

Langkah berikutnya

Konfigurasikan layar izin OAuth aplikasi Anda untuk memastikan pengguna dapat memahami dan menyetujui akses yang dimiliki aplikasi Anda ke data mereka.