Dokumen ini membantu Anda memahami beberapa metode dan konsep autentikasi utama, serta mengetahui cara mendapatkan bantuan dalam menerapkan atau memecahkan masalah autentikasi. Fokus utama dokumentasi autentikasi adalah untuk layanan Google Cloud, tetapi daftar kasus penggunaan autentikasi dan materi pengantar di halaman ini menyertakan kasus penggunaan untuk produk Google lainnya juga.
Pengantar
Autentikasi adalah proses yang digunakan untuk mengonfirmasi identitas Anda melalui penggunaan semacam kredensial. Autentikasi adalah pembuktian bahwa Anda memang orang yang Anda katakan.
Google menyediakan banyak API dan layanan, yang memerlukan autentikasi untuk mengakses. Google juga menyediakan sejumlah layanan yang menghosting aplikasi yang ditulis oleh pelanggan kami; aplikasi ini juga perlu mengetahui identitas penggunanya.
Cara mendapatkan bantuan terkait autentikasi
Saya ingin... | Informasi |
---|---|
Melakukan autentikasi ke layanan Google Cloud dari aplikasi saya menggunakan bahasa pemrograman tingkat tinggi. | Siapkan Kredensial Default Aplikasi, lalu gunakan salah satu Library Klien Cloud. |
Melakukan autentikasi ke aplikasi yang berjalan di Cloud Run atau Cloud Functions. | Dapatkan token ID OpenID Connect (OIDC), lalu berikan permintaan Anda. |
Mengimplementasikan autentikasi pengguna untuk aplikasi yang mengakses layanan dan resource Google atau Google Cloud. | Lihat Autentikasi pengguna aplikasi untuk mengetahui perbandingan opsi. |
Mencoba beberapa perintah gcloud di lingkungan pengembangan lokal saya.
|
Lakukan inisialisasi gcloud CLI. |
Mencoba beberapa permintaan REST API Google Cloud di lingkungan pengembangan lokal saya. |
Gunakan alat command line seperti curl untuk
memanggil REST API.
|
Mencoba cuplikan kode yang disertakan dalam dokumentasi produk saya. | Siapkan Kredensial Default Aplikasi secara lokal, lalu instal library klien produk Anda di lingkungan lokal Anda. Library klien menemukan kredensial Anda secara otomatis. |
Mendapatkan bantuan terkait kasus penggunaan autentikasi lainnya. | Lihat halaman Kasus penggunaan autentikasi. |
Melihat daftar produk yang disediakan Google di ruang pengelolaan akses dan identitas. | Lihat halaman produk pengelolaan akses dan identitas Google. |
Memilih metode autentikasi yang tepat untuk kasus penggunaan Anda
Saat Anda mengakses layanan Google Cloud menggunakan Google Cloud CLI, Library Klien Cloud, alat yang mendukung Kredensial Default Aplikasi (ADC) seperti Terraform, atau permintaan REST, gunakan diagram berikut untuk membantu Anda memilih metode autentikasi:
Diagram ini memandu Anda melalui pertanyaan-pertanyaan berikut:
-
Apakah Anda menjalankan kode dalam lingkungan pengembangan pengguna tunggal, seperti workstation,
Cloud Shell, atau antarmuka desktop virtual Anda sendiri?
- Jika ya, lanjutkan ke pertanyaan 4.
- Jika tidak, lanjutkan ke pertanyaan 2.
- Apakah Anda menjalankan kode di Google Cloud?
- Jika ya, lanjutkan ke pertanyaan 3.
- Jika tidak, lanjutkan ke pertanyaan 5.
- Apakah Anda menjalankan container di Google Kubernetes Engine atau GKE Enterprise?
- Jika ya, gunakan workload identity federation untuk GKE untuk menambahkan akun layanan ke pod Kubernetes.
- Jika tidak, lampirkan akun layanan ke resource.
-
Apakah kasus penggunaan Anda memerlukan akun layanan?
Misalnya, Anda ingin mengonfigurasi autentikasi dan otorisasi secara konsisten untuk aplikasi Anda di semua lingkungan.
-
Apakah workload Anda diautentikasi dengan penyedia identitas eksternal yang mendukung
workload identity federation?
- Jika ya, konfigurasikan workload identity federation agar aplikasi yang berjalan secara lokal atau di penyedia cloud lain dapat menggunakan akun layanan.
- Jika tidak, buat kunci akun layanan.
Jenis autentikasi
Autentikasi diperlukan untuk mengakses sebagian besar resource dan aplikasi. Dokumentasi ini mendukung praktisi teknis yang membuat kode aplikasi dengan salah satu tujuan berikut:
OAuth 2.0
Google API menerapkan dan memperluas framework OAuth 2.0. Framework OAuth 2.0 menguraikan berbagai "alur" autentikasi atau pendekatan autentikasi. Umumnya, aplikasi menyajikan kredensial, yang mewakili akun utama (baik pengguna maupun akun layanan), ke modul perantara yang bernama Server Otorisasi. Server Otorisasi merespons dengan token yang dapat digunakan aplikasi untuk melakukan autentikasi dengan layanan dan mengakses resource. Token ini meliputi satu atau beberapa cakupan, yang mencerminkan akses apa yang diizinkan untuk dibuat oleh aplikasi. Aplikasi kemudian menyajikan token ke server resource untuk mendapatkan akses ke resource.
Metode otorisasi untuk layanan Google Cloud
Layanan Google Cloud menggunakan Identity and Access Management (IAM)
untuk autentikasi. IAM menawarkan kontrol terperinci, oleh
akun utama dan oleh resource. Saat melakukan autentikasi ke layanan Google Cloud, Anda
umumnya menggunakan cakupan yang menyertakan semua layanan Google Cloud
(https://www.googleapis.com/auth/cloud-platform
).
Cakupan OAuth 2.0 dapat memberikan lapisan perlindungan kedua, yang berguna jika kode Anda berjalan di lingkungan yang mengutamakan keamanan token, seperti aplikasi seluler. Dalam skenario ini, Anda dapat menggunakan cakupan terperinci untuk mengurangi risiko jika token disusupi. Cakupan OAuth 2.0 juga digunakan untuk melakukan otorisasi akses ke data pengguna.
Kredensial Default Aplikasi
Application Default Credentials (ADC) adalah strategi yang digunakan oleh library autentikasi Google untuk menemukan kredensial secara otomatis berdasarkan lingkungan aplikasi. Library autentikasi menyediakan kredensial tersebut untuk Library Klien Cloud dan Library Klien Google API. Saat menggunakan ADC, kode Anda dapat berjalan di lingkungan pengembangan atau produksi tanpa mengubah cara aplikasi Anda melakukan autentikasi ke layanan dan API Google Cloud.
Jika menulis kode yang perlu menggunakan layanan Google Cloud, Anda harus menggunakan ADC jika memungkinkan. Penggunaan ADC dapat menyederhanakan proses pengembangan Anda karena dengan ini Anda dapat menggunakan kode autentikasi yang sama di berbagai lingkungan.
Sebelum dapat menggunakan ADC, Anda harus memberikan kredensial ke ADC, berdasarkan tempat Anda ingin menjalankan kode. ADC secara otomatis menemukan kredensial dan mendapatkan token di latar belakang, sehingga kode autentikasi Anda dapat berjalan di lingkungan yang berbeda tanpa modifikasi. Misalnya, versi kode yang sama dapat melakukan autentikasi dengan Google Cloud API saat berjalan di workstation pengembangan atau di Compute Engine.
Kredensial gcloud Anda tidak sama dengan kredensial yang Anda berikan ke ADC menggunakan gcloud CLI. Untuk informasi selengkapnya, lihat kredensial gcloud CLI dan kredensial ADC.
Terminologi
Istilah berikut penting untuk dipahami saat membahas autentikasi dan otorisasi.
Authentication
Autentikasi adalah proses mengetahui identitas akun utama yang mencoba mengakses resource.
Otorisasi
Otorisasi adalah proses menentukan apakah akun utama atau aplikasi yang mencoba mengakses resource telah diizinkan untuk tingkat akses tersebut.
Kredensial
Jika dokumen ini menggunakan istilah akun pengguna, istilah itu mengacu pada Akun Google, atau akun pengguna yang dikelola oleh penyedia identitas Anda dan digabungkan dengan federasi identitas tenaga kerja.
Untuk autentikasi, kredensial adalah objek digital yang memberikan bukti identitas. Sandi, PIN, dan data biometrik dapat digunakan sebagai kredensial, tergantung pada persyaratan aplikasi. Misalnya, saat login ke akun pengguna, Anda memasukkan sandi dan memenuhi persyaratan autentikasi 2 langkah sebagai bukti bahwa akun tersebut benar-benar milik Anda dan tidak ditipu oleh pihak tidak bertanggung jawab.
Token terkadang disebut sebagai kredensial, tetapi dalam dokumentasi ini, token disebut sebagai objek digital yang membuktikan bahwa pemanggil memberikan kredensial yang tepat, tetapi token sebenarnya bukan kredensial itu sendiri.
Jenis kredensial yang perlu Anda berikan bergantung pada autentikasi yang Anda lakukan. Jenis kredensial berikut dapat dibuat di Konsol Google Cloud:
Kunci API
Tidak seperti kredensial lainnya, kunci API tidak mengidentifikasi akun utama. Kunci API menyediakan project Google Cloud untuk tujuan penagihan dan kuota.
Banyak Google API yang tidak menerima kunci API. Untuk informasi selengkapnya tentang kunci API, lihat Kunci API.
Client ID OAuth
Client ID OAuth digunakan untuk mengidentifikasi aplikasi ke Google. Langkah ini diperlukan saat Anda ingin mengakses resource yang dimiliki oleh pengguna akhir, yang juga disebut three-legged OAuth (3LO). Untuk informasi selengkapnya tentang cara mendapatkan dan menggunakan Client ID OAuth, lihat Menyiapkan OAuth 2.0.
Akun utama
Akun utama adalah identitas yang dapat diberi akses ke resource. Untuk autentikasi, Google API mendukung dua jenis akun utama: akun pengguna dan akun layanan.
Penggunaan akun pengguna atau akun layanan untuk autentikasi bergantung pada kasus penggunaan Anda. Anda dapat menggunakan keduanya, masing-masing pada tahap project atau dalam lingkungan pengembangan yang berbeda-beda.
Akun pengguna
Akun pengguna mewakili developer, administrator, atau orang lain yang berinteraksi dengan Google API dan layanan Google.
Akun pengguna dikelola sebagai Akun Google, baik dengan Google Workspace maupun Cloud Identity. Akun ini juga dapat berupa akun pengguna yang dikelola oleh penyedia identitas pihak ketiga dan digabungkan dengan federasi identitas tenaga kerja.Dengan akun pengguna, Anda dapat melakukan autentikasi ke Google API dan layanan Google dengan cara berikut:
- Gunakan gcloud CLI untuk menyiapkan Kredensial Default Aplikasi (ADC).
- Gunakan kredensial pengguna Anda untuk login ke Google Cloud CLI, lalu gunakan alat ini untuk mengakses layanan Google Cloud.
- Gunakan kredensial pengguna Anda untuk meniru identitas akun layanan.
- Gunakan kredensial pengguna Anda untuk login ke Google Cloud CLI, lalu gunakan alat ini untuk membuat token akses.
Untuk ringkasan tentang cara mengonfigurasi identitas bagi pengguna di Google Cloud, lihat Identitas untuk pengguna.
Akun layanan
Akun layanan adalah akun yang tidak mewakili pengguna manusia. Akun ini menyediakan cara untuk mengelola autentikasi dan otorisasi saat manusia tidak terlibat secara langsung, seperti saat aplikasi perlu mengakses resource Google Cloud. Akun layanan dikelola oleh IAM.
Daftar berikut menyediakan beberapa metode penggunaan akun layanan untuk melakukan autentikasi ke layanan Google dan Google API, diurutkan dari yang paling aman hingga yang paling tidak aman. Untuk informasi selengkapnya, lihat Memilih metode autentikasi yang tepat untuk kasus penggunaan Anda di halaman ini.
Lampirkan akun layanan yang dikelola pengguna ke resource dan gunakan ADC untuk melakukan autentikasi.
Ini adalah cara yang direkomendasikan untuk autentikasi kode produksi yang berjalan di Google Cloud.
Gunakan akun layanan untuk meniru akun layanan lain.
Dengan peniruan akun layanan, Anda dapat memberikan lebih banyak hak istimewa untuk sementara ke akun layanan. Dengan memberikan hak istimewa tambahan untuk sementara, akun layanan tersebut dapat melakukan akses yang diperlukan tanpa harus mendapatkan hak istimewa tambahan secara permanen.
Gunakan akun layanan default.
Tidak direkomendasikan untuk menggunakan akun layanan default, karena secara default akun layanan default memiliki hak istimewa tinggi, yang melanggar prinsip hak istimewa terendah.
Gunakan workload identity federation untuk mengautentikasi workload yang berjalan di infrastruktur lokal atau di penyedia cloud lain.
Untuk ringkasan tentang cara mengonfigurasi identitas workload, termasuk akun layanan, untuk Google Cloud, lihat Identitas untuk workload. Untuk praktik terbaik, lihat Praktik terbaik untuk menggunakan akun layanan.
Token
Untuk autentikasi dan otorisasi, token adalah objek digital yang menunjukkan bahwa pemanggil memberikan kredensial yang sesuai untuk ditukarkan dengan token tersebut. Token tersebut berisi informasi tentang identitas akun utama yang membuat permintaan dan jenis akses apa yang diizinkan untuk dilakukan olehnya.
Anggaplah token seperti kunci hotel. Saat check in ke hotel dan menunjukkan dokumentasi yang sesuai ke meja pendaftaran hotel, Anda akan menerima kunci yang memberi Anda akses ke fasilitas hotel tertentu. Misalnya, kunci mungkin memberi Anda akses ke kamar dan lift tamu, tetapi tidak akan memberi Anda akses ke kamar lain atau lift pelayanan.
Dengan pengecualian kunci API, Google API tidak mendukung kredensial secara langsung. Aplikasi Anda harus memperoleh atau membuat token dan memberikannya ke API. Ada beberapa jenis token. Untuk informasi selengkapnya, lihat Jenis token.
Workload dan workforce
Produk akses dan identitas Google Cloud memungkinkan akses ke layanan dan resource Google untuk akses terprogram dan pengguna manusia. Google menggunakan istilah workload untuk akses terprogram dan workforce untuk akses pengguna.
workload identity federation memungkinkan Anda memberikan akses ke workload yang berjalan di luar Google tanpa harus membuat dan mengelola kunci akun layanan.
Workforce Identity Federation memungkinkan Anda menggunakan Penyedia Identitas eksternal untuk melakukan autentikasi dan otorisasi kepada workforce—grup pengguna seperti karyawan, partner, dan kontraktor—menggunakan IAM, sehingga pengguna dapat mengakses layanan Google Cloud.
Langkah selanjutnya
- Lihat kasus penggunaan autentikasi lainnya.
- Pelajari lebih lanjut bagaimana layanan Google Cloud menggunakan IAM untuk mengontrol akses ke resource Google Cloud.
- Pahami cara kerja Kredensial Default Aplikasi, dan cara menyiapkannya untuk berbagai lingkungan pengembangan.