Pelajari autentikasi & otorisasi

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

Autentikasi mengidentifikasi siapa yang membuat permintaan. Otorisasi mengidentifikasi resource yang dapat diakses pemohon dan tingkat akses yang dia miliki. Autentikasi adalah prasyarat untuk otorisasi. Anda tidak dapat menentukan resource yang akan diakses tanpa menetapkan identitas pemohon terlebih dahulu. Untuk definisi yang lebih mendetail, lihat Bagian terminologi penting.

Perhatikan contoh sederhana reservasi hotel berikut. Saat tiba di hotel, petugas resepsionis meminta ID Anda untuk memverifikasi reservasi. ID 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 mengizinkan Anda mengakses resource tersebut.

Ringkasan proses

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

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

  2. Mengautentikasi aplikasi agar dapat diakses: Saat aplikasi berjalan, kredensial akses yang terdaftar akan dievaluasi. Jika aplikasi Anda diautentikasi sebagai pengguna akhir, perintah login mungkin akan ditampilkan.

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

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

  5. Mengirim permintaan yang disetujui untuk resource: Jika pengguna mengizinkan cakupan akses, aplikasi 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. Mendapatkan token refresh (opsional): Jika aplikasi Anda memerlukan akses ke Google API di luar masa berlaku token akses tunggal, aplikasi dapat memperoleh token refresh.

  9. Minta lebih banyak resource: Jika diperlukan 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 utama, yang dapat berupa pengguna atau aplikasi yang bertindak atas nama pengguna, adalah siapa yang mereka katakan. Saat menulis aplikasi Google Workspace, Anda harus mengetahui jenis autentikasi ini:

Autentikasi pengguna
Tindakan pengguna yang melakukan autentikasi (login) ke aplikasi Anda. Autentikasi pengguna biasanya dilakukan melalui proses login, yang mana pengguna dapat menggunakan kombinasi nama pengguna dan sandi untuk memverifikasi identitasnya ke aplikasi. Autentikasi pengguna dapat digabungkan ke 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 dibuat sebelumnya dalam kode aplikasi Anda.
Otorisasi

Izin atau "otoritas" akun utama harus mengakses data atau melakukan operasi. Tindakan otorisasi dilakukan melalui kode yang Anda tulis dalam 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 melakukan operasi.

Kredensial

Tanda pengenal yang digunakan dalam keamanan software. Dalam hal autentikasi, kredensial sering kali merupakan kombinasi nama pengguna/sandi. Dalam hal otorisasi untuk Google Workspace API, kredensial biasanya berupa suatu bentuk identifikasi, seperti string rahasia unik, yang hanya diketahui 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 file Maps API atau 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 hanya dengan memberikan token kepada pemohon yang diotorisasi. Anda tidak boleh menyertakan rahasia klien dalam aplikasi Anda.
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 menjalankan beberapa operasi. Akun layanan biasanya digunakan untuk mengakses data dan operasi berbasis cloud. Namun, saat digunakan dengan delegasi tingkat domain, domain 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 diaksesnya, 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 di token akses. Untuk mengetahui detail selengkapnya, baca Cara memilih cakupan untuk aplikasi Anda.

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, yang dikenal sebagai cakupan, ke beberapa API. 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 memberikan "akses yang didelegasikan" secara 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.

Kepala Sekolah

Entitas, 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 Principals.

Jenis data

Dalam konteks autentikasi dan otorisasi, jenis data mengacu pada entitas yang memiliki data yang dicoba diakses oleh aplikasi Anda. Ada tiga jenis 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 yang mewajibkan pengguna aplikasi Anda mengizinkan aplikasi untuk mengakses data dan melakukan operasi atas nama pengguna.

Jenis aplikasi

Jenis aplikasi yang akan dibuat. Saat membuat kredensial menggunakan Google Cloud Console, Anda akan diminta untuk memilih jenis aplikasi. Jenis aplikasi meliputi: Aplikasi web (JavaScript), Android, aplikasi Chrome, iOS, perangkat TV dan 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 diautentikasi 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 delegasi tingkat domain. Untuk mengetahui detail selengkapnya, lihat Memahami akun layanan.

Delegasi tingkat otoritas 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 otoritas dengan cara ini, administrator Google Workspace menggunakan akun layanan dengan OAuth 2.0. Karena adanya fitur ini, hanya admin super yang dapat mengaktifkan delegasi 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.