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.

Catatan: Ringkasan ini berfokus pada autentikasi dan otorisasi untuk Google Workspace API. Beberapa informasi dalam dokumen ini mungkin tidak terkait dengan Google API lainnya.

Ringkasan proses

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

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

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

  3. Meminta resource: Jika aplikasi memerlukan akses ke resource Google, aplikasi akan meminta Google untuk menggunakan cakupan akses yang relevan yang sebelumnya Anda daftarkan.

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

  5. Mengirim permintaan yang disetujui untuk resource: Jika pengguna menyetujui cakupan akses, aplikasi Anda akan memaketkan kredensial dan cakupan akses yang disetujui pengguna ke dalam permintaan. Permintaan tersebut 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 aktif 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 untuk memastikan bahwa utama, yang dapat berupa pengguna atau aplikasi yang bertindak atas nama pengguna, adalah orang yang mereka katakan. 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 di mana pengguna menggunakan kombinasi nama pengguna dan sandi untuk memverifikasi identitasnya ke aplikasi. Autentikasi pengguna dapat disertakan 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 telah dibuat sebelumnya dalam kode aplikasi Anda.
Otorisasi

Izin atau "otoritas" prinsipal 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 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 hanya boleh diketahui oleh aplikasi dan server otorisasi. Rahasia klien melindungi data pengguna hanya dengan memberikan token kepada pemohon yang diotorisasi. Anda tidak boleh menyertakan rahasia klien dalam aplikasi.
Kunci akun layanan
Digunakan oleh akun layanan untuk mendapatkan otorisasi atas layanan Google.
Service account
Kredensial yang digunakan untuk interaksi server ke server, seperti aplikasi tanpa wajah yang dijalankan 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 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 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 tingkat 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 aplikasi Anda.

Framework OAuth 2.0

Standar yang dapat digunakan aplikasi Anda untuk memberinya “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.

Prinsipal

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 entity yang memiliki data yang dicoba diakses oleh aplikasi Anda. Ada tiga jenis data:

Data domain publik
Data yang dapat diakses oleh siapa pun, 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 mengizinkan aplikasi 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 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 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 tidak dapat digunakan sendiri untuk mengakses data pengguna; data biasanya diakses menggunakan Workspace API. Namun, akun layanan dapat mengakses data pengguna dengan menerapkan delegasi seluruh domain. Untuk detail selengkapnya, baca Memahami akun layanan.

Delegasi tingkat 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 kecanggihan fitur ini, hanya admin super yang dapat mengaktifkan delegasi tingkat domain. Untuk 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.