Pelajari autentikasi dan otorisasi

Autentikasi dan otorisasi masing-masing 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 pada 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 mendetail, 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. Tanda pengenal Anda mengautentikasi Anda ke hotel. Petugas meja depan memberi Anda kunci hotel. Kunci ini memberi Anda akses ke resource tertentu di hotel, seperti kamar hotel, gym, dan business center. Kunci hotel memberi otorisasi Anda untuk mengakses resource tersebut.

Ringkasan proses

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

Langkah-langkah tingkat tinggi dari implementasi autentikasi dan otorisasi
Gambar 1. Langkah-langkah tingkat tinggi dari penerapan autentikasi dan otorisasi
  1. Konfigurasikan project dan aplikasi Google Cloud Anda: Selama pengembangan, Anda mendaftarkan aplikasi di Konsol Google Cloud dengan menentukan cakupan otorisasi dan kredensial akses untuk mengautentikasi aplikasi Anda dengan kunci API, kredensial pengguna akhir, atau kredensial akun layanan.

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

  3. Meminta 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 melakukan autentikasi sebagai pengguna akhir, Google akan menampilkan layar izin OAuth sehingga pengguna dapat memutuskan apakah akan memberi aplikasi Anda akses ke data yang diminta atau tidak.

  5. Kirim permintaan resource yang disetujui: Jika pengguna mengizinkan cakupan akses, app bundle 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 di luar masa pakai token akses tunggal, aplikasi dapat memperoleh token refresh.

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

Terminologi penting

Berikut adalah daftar istilah yang terkait dengan autentikasi dan otorisasi:

Autentikasi

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

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

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

Kredensial

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 berupa beberapa 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 Anda dan server otorisasi. Rahasia klien melindungi data pengguna dengan hanya memberikan token kepada pemohon yang berwenang. Anda tidak boleh menyertakan rahasia klien yang tidak dienkripsi dalam aplikasi Anda. Sebaiknya simpan rahasia klien dengan aman. Untuk mengetahui informasi selengkapnya, lihat 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 beberapa operasi. Akun layanan biasanya digunakan untuk mengakses data dan operasi berbasis cloud. Namun, saat digunakan dengan pendelegasian otoritas tingkat domain, kredensial tersebut 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 ingin diberikan, lalu server autentikasi Google akan menampilkan cakupan yang diizinkan ke aplikasi Anda dalam token akses. Untuk detail selengkapnya, lihat 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. Token akses tunggal dapat memberikan berbagai tingkat 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 aplikasi Anda.

Framework OAuth 2.0

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

Kepala sekolah

Entity 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 yang 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 milik project Google Cloud. Jenis data ini biasanya diakses oleh akun layanan.
Izin pengguna

Langkah otorisasi mengharuskan pengguna aplikasi untuk memberi otorisasi aplikasi agar dapat mengakses data dan melakukan operasi atas nama pengguna.

Jenis aplikasi

Jenis aplikasi yang akan Anda buat. 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 melakukan autentikasi dan diberi otorisasi untuk mengakses data. Aplikasi Anda mengasumsikan identitas akun layanan untuk memanggil Google API, sehingga pengguna tidak terlibat secara langsung. Akun layanan sendiri tidak dapat digunakan untuk mengakses data pengguna; data biasanya diakses menggunakan Workspace API. Namun, akun layanan dapat mengakses data pengguna dengan menerapkan pendelegasian otoritas di seluruh domain. Untuk mengetahui detail selengkapnya, lihat Memahami akun layanan.

Delegasi otoritas tingkat domain

Fitur administrasi yang dapat mengizinkan aplikasi 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 wewenang dengan cara ini, administrator Google Workspace menggunakan akun layanan dengan OAuth 2.0. Berkat kehebatan fitur ini, hanya admin super yang dapat mengaktifkan pendelegasian otoritas tingkat domain. Untuk mengetahui detail selengkapnya, lihat Mendelegasikan otoritas seluruh domain ke akun layanan.

Langkah berikutnya

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