Sebelum pengguna atau aplikasi dapat menggunakan App Engine Admin API, Anda sebagai pemilik project Google Cloud harus terlebih dahulu mengaktifkan API di project Anda, lalu membuat kredensial yang dapat digunakan oleh pengguna atau aplikasi untuk mengizinkan permintaan HTTP.
Misalnya, pemilik harus membuat project Google Cloud awal terlebih dahulu, lalu membuat kredensial dalam project tersebut sebelum siapa pun dapat mengirim permintaan HTTP ke Admin API. Setelah pemilik menyiapkan dan mengonfigurasi project awal, project tersebut kemudian dapat digunakan untuk tujuan administratif guna membuat dan mengelola resource lain secara terprogram, misalnya:
- Membuat project Google Cloud lainnya.
- Membuat aplikasi App Engine untuk semua project yang baru dibuat.
- Men-deploy versi aplikasi ke aplikasi App Engine yang baru dibuat.
- Mengelola resource di semua versi yang Anda deploy.
Sebelum memulai
Untuk menyelesaikan tugas berikut, Anda harus menjadi pemilik project Google Cloud tempat Anda ingin mengaktifkan Admin API untuk diakses pengguna dan aplikasi.
Mengonfigurasi project Anda dan membuat kredensial
Untuk mengonfigurasi project Google Cloud dan membuat kredensial:
Aktifkan App Engine Admin API dan Cloud Storage API di project Google Cloud Anda:
Buat kredensial yang digunakan pengguna dan aplikasi untuk mengakses Admin API di project Anda.
Untuk membuat kredensial, tinjau Panduan Auth Google Cloud Platform, lalu pilih alur otorisasi OAuth 2.0 yang memenuhi persyaratan aplikasi Anda.
Contoh
Untuk mendemonstrasikan alur autentikasi, contoh di bawah ini menggunakan alur OAuth 2.0
sisi klien untuk mendapatkan token. Token ini digunakan untuk mengizinkan permintaan ke
Admin API menggunakan alat command line cURL untuk men-deploy contoh
aplikasi ke aplikasi App Engine dari project [MY_PROJECT_ID]
.
Contoh autentikasi
Dalam contoh ini, alur otorisasi sisi klien yang dikenal sebagai alur pemberian implisit, mengharuskan pengguna mengizinkan aplikasi klien untuk mengakses Admin API atas nama pengguna. Token akses yang ditampilkan berlaku sekitar 60 menit atau umumnya saat pengguna aktif di aplikasi Anda.
Permintaan HTTP
URL berikut menggunakan client ID yang dibuat di Konsol Google Cloud untuk meminta token akses, lalu mengalihkan pengguna ke URI yang diotorisasi tempat aplikasi Anda menerima token:
https://accounts.google.com/o/oauth2/v2/auth?
response_type=token&
client_id=[MY_CLIENT_ID].apps.googleusercontent.com&
scope=https://www.googleapis.com/auth/cloud-platform&
redirect_uri=[MY_REDIRECT_URI]
Dengan keterangan:
[MY_CLIENT_ID]
adalah Client ID dari salah satu kredensial Anda di Konsol Google Cloud.[MY_REDIRECT_URI]
adalah URI pengalihan yang diotorisasi yang sesuai dari kredensial yang sama di Konsol Google Cloud. Jika URI pengalihan tidak ditentukan, Anda harus menentukan URI tepercaya, misalnyahttps://www.google.com
. URI pengalihan menentukan ke mana respons HTTP akan dikirim. Untuk produksi, Anda harus menentukan endpoint auth aplikasi, yang menangani respons dari server OAuth 2.0. Untuk informasi selengkapnya, lihat Menggunakan OAuth 2.0 untuk Aplikasi Server Web.
Respons HTTP
Saat aplikasi menggunakan URL untuk meminta otorisasi, token akses akan ditampilkan dalam respons, misalnya:
https://www.google.com/#access_token=[MY_ACCESS_TOKEN]&
token_type=Bearer&
expires_in=3600
Di mana [MY_ACCESS_TOKEN]
adalah token akses yang ditampilkan yang Anda minta sebelumnya.
Setelah mendapatkan token akses, Anda dapat menggunakannya untuk mengakses Admin API. Misalnya, endpoint autentikasi aplikasi Anda dapat mengekstrak token akses secara terprogram dari respons. Lihat contoh berikut untuk mengetahui cara menggunakan token secara manual dalam perintah cURL.
Contoh permintaan HTTP menggunakan cURL
Perintah cURL berikut menunjukkan cara menggunakan token akses [MY_ACCESS_TOKEN]
untuk membuat permintaan POST
HTTP. Perintah cURL ini men-deploy
resource yang ditentukan dalam file konfigurasi app.json
ke versi v1
layanan default
dalam penerapan project MY_PROJECT_ID
.
curl -X POST -T "app.json" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions