Otentikasi 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.
Autentikasi mengidentifikasi siapa yang membuat permintaan. Otorisasi mengidentifikasi resource yang dapat diakses pemohon dan tingkat akses yang mereka 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 reservasi hotel yang disederhanakan berikut. Saat Anda tiba di hotel, petugas resepsionis akan meminta tanda pengenal Anda untuk memverifikasi reservasi Anda. Tanda pengenal Anda melakukan autentikasi Anda ke hotel. Petugas resepsionis memberi Anda kunci hotel. Kunci ini memberi Anda akses ke fasilitas tertentu di hotel seperti kamar hotel, gym, dan business center. Kunci hotel memberi otorisasi kepada Anda untuk mengakses resource tersebut.
Ringkasan proses
Diagram berikut menunjukkan langkah-langkah autentikasi dan otorisasi tingkat tinggi untuk Google Workspace API:
Konfigurasikan project dan aplikasi Google Cloud Anda: Selama pengembangan, Anda mendaftarkan aplikasi di konsol Google Cloud, menentukan cakupan otorisasi dan kredensial akses untuk mengautentikasi aplikasi dengan kunci API, kredensial pengguna akhir, atau kredensial akun layanan.
Autentikasi aplikasi Anda untuk mendapatkan akses: Saat aplikasi Anda berjalan, kredensial akses yang terdaftar akan dievaluasi. Jika aplikasi Anda mengautentikasi sebagai pengguna akhir, perintah login mungkin ditampilkan.
Meminta resource: Saat memerlukan akses ke resource Google, aplikasi Anda akan meminta Google menggunakan cakupan akses yang relevan yang sebelumnya Anda daftarkan.
Meminta 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.
Kirim 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.
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.
Mengakses resource yang diminta: Aplikasi Anda menggunakan token akses dari Google untuk memanggil API yang relevan dan mengakses resource.
Mendapatkan token refresh (opsional): Jika aplikasi Anda memerlukan akses ke Google API di luar masa berlaku satu token akses, aplikasi tersebut dapat memperoleh token refresh.
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 prinsipal, yang dapat berupa pengguna atau aplikasi yang bertindak atas nama pengguna, adalah orang yang mereka klaim. Saat menulis aplikasi Google Workspace, Anda harus mengetahui jenis autentikasi berikut:
- Autentikasi pengguna
- Tindakan pengguna yang melakukan autentikasi (login) ke aplikasi Anda. Autentikasi pengguna biasanya dilakukan melalui proses login, yaitu pengguna menggunakan kombinasi nama pengguna dan sandi untuk memverifikasi identitasnya ke aplikasi. Autentikasi pengguna dapat digabungkan 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 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 namanya dan, jika diizinkan, menggunakan kredensial unik aplikasi Anda untuk mendapatkan token akses dari Google yang digunakan untuk mengakses data atau melakukan operasi.
- Kredensial
Bentuk identifikasi yang digunakan dalam keamanan software. Dalam hal autentikasi, kredensial sering kali berupa kombinasi nama pengguna dan 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 berikut: 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 dengan 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 Anda dan server otorisasi. Secret klien melindungi data pengguna dengan hanya memberikan token kepada pemohon yang berwenang. Anda tidak boleh menyertakan rahasia klien yang tidak dienkripsi dalam aplikasi. Sebaiknya simpan rahasia klien dengan aman. Untuk 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 antar-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, jika digunakan dengan delegasi tingkat domain, aplikasi 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 mengetahui detail selengkapnya, lihat 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 dengan aman” atau akses ke data dan operasi atas nama pengguna aplikasi. Mekanisme autentikasi dan otorisasi yang Anda gunakan di aplikasi mewakili penerapan framework OAuth 2.0.
- Akun utama
Entitas, yang 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 Prinsipal.
- Jenis data
Dalam konteks autentikasi dan otorisasi, jenis data mengacu pada entitas yang memiliki data yang coba diakses 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 yang dimiliki oleh project Google Cloud. Jenis data ini biasanya diakses oleh akun layanan.
- Izin pengguna
Langkah otorisasi yang mewajibkan pengguna aplikasi Anda untuk mengizinkan aplikasi 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. Secara mandiri, akun layanan tidak dapat digunakan untuk mengakses data pengguna; data yang biasanya diakses menggunakan Workspace API. Namun, akun layanan dapat mengakses data pengguna dengan menerapkan delegasi otoritas seluruh domain. Untuk mengetahui detail selengkapnya, lihat Memahami akun layanan.
- Delegasi otoritas di seluruh domain
Fitur administrasi yang dapat memberikan otorisasi kepada 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 kemampuan fitur ini, hanya admin super yang dapat mengaktifkan delegasi wewenang di seluruh domain. Untuk mengetahui detail selengkapnya, lihat Mendelegasikan otoritas tingkat 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.