Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat Dokumentasi Apigee Edge.
Topik ini menjelaskan cara menyiapkan dan men-deploy proxy API yang dikonfigurasi untuk digunakan Autentikasi Google.
Pengantar
Dukungan Apigee menggunakan Google Token OAuth atau OpenID Menghubungkan token untuk melakukan autentikasi dengan layanan Google, seperti Cloud Logging dan Secret Manager dan layanan kustom sedang berjalan pada produk Google Cloud tertentu seperti Cloud Functions dan Cloud Run.
Untuk menggunakan fitur ini, Anda harus mengonfigurasi elemen XML <Authentication>
di
salah satu konteks berikut:
- Kebijakan ServiceInfo
- Kebijakan Pemanggilan Eksternal
- Konfigurasi TargetEndpoint
Setelah Anda menyelesaikan beberapa langkah penyiapan dasar (seperti yang dijelaskan dalam topik ini), Apigee menjalankan pembuatan token dan mengamankan panggilan ke layanan Google yang ditargetkan atau layanan yang dihosting khusus untuk Anda, tanpa perlu menetapkan header autentikasi atau atau mengubah permintaan layanan. Dari perspektif pengembang API, proses memanggil layanan Google dari dalam proxy API yang dikonfigurasikan dengan benar akan ditangani dengan lancar.
Opsi konfigurasi proxy API
Bagian ini menjelaskan tempat Anda dapat menggunakan elemen XML <Authentication>
untuk
aktifkan autentikasi Token Google OAuth atau OpenID Connect:
Opsi konfigurasi | Deskripsi |
---|---|
Kebijakan ServiceInfo | Kebijakan ServiceInfo memungkinkan Anda memanggil layanan internal atau eksternal lainnya dari proxy API. Misalnya, Anda dapat menggunakan Servicecallout untuk memanggil layanan Google eksternal atau dan layanan terhosting kustom. Untuk detail dan contoh penggunaan, lihat Kebijakan ServiceInfo. |
Kebijakan ExternalInfo | Kebijakan ExternalInfo memungkinkan Anda mengirim permintaan gRPC ke server gRPC untuk menerapkan perilaku kustom yang tidak didukung oleh kebijakan Apigee. Untuk detail penggunaan beserta contohnya, lihat Kebijakan Info Eksternal. |
TargetEndpoint | Tetapkan layanan Google atau layanan yang dihosting kustom sebagai endpoint target proxy API. Untuk mengetahui detail dan contoh penggunaan, lihat Referensi konfigurasi Proxy API. |
Konteks yang didukung Token Google Auth
Elemen <Authentication>
memiliki dua konfigurasi sub-elemen:
<GoogleAccessToken>
atau <GoogleIDToken>
. Hal berikut
tabel menunjukkan konteks yang mendukung elemen-elemen ini:
Digunakan di | GoogleAccessToken | GoogleIDToken |
---|---|---|
Kebijakan ServiceInfo | Didukung | Didukung |
Kebijakan ExternalInfo | Tidak didukung | Didukung |
TargetEndpoint | Didukung | Didukung |
Langkah-langkah penerapan
Bagian ini menjelaskan cara men-deploy proxy API yang menggunakan autentikasi Google untuk memanggil target layanan Google atau layanan yang dihosting kustom. Kami menjelaskan langkah-langkah deployment untuk Apigee dan Apigee Hybrid secara terpisah.
Men-deploy di Apigee
Langkah berikut menjelaskan cara men-deploy proxy API di Apigee, tempat proxy dikonfigurasi untuk membuat
yang diautentikasi ke layanan Google
atau layanan yang dihosting secara khusus. Langkah-langkahnya mengasumsikan bahwa Anda telah membuat {i>proxy<i}, dan
bahwa kode ini menyertakan elemen <Authentication>
dalam salah satu konteks yang didukung yang tercantum.
- Membuat akun layanan Google di Google Cloud yang sama
proyek di mana
Organisasi Apigee telah dibuat. Anda harus memberikan nama akun layanan ini saat men-deploy proxy API yang
dikonfigurasi untuk menggunakan otentikasi Google, dan token OAuth yang dibuat akan mewakili
akun layanan.
Anda dapat membuat akun layanan di Konsol Google Cloud atau dengan
menggunakan perintah
gcloud
. Lihat Membuat dan mengelola akun layanan. - Memberi pengguna yang akan melakukan deployment (deployment)
iam.serviceAccounts.actAs
izin akses pada akun layanan. Lihat juga Tentang izin akun layanan.gcloud iam service-accounts add-iam-policy-binding \ SA_NAME@PROJECT_ID. \ --member="MEMBER" \ --role="roles/iam.serviceAccountUser"
- PROJECT_ID: ID project. ID sama dengan nama organisasi Anda.
- SA_NAME: Nama yang Anda berikan saat membuat akun layanan Anda.
- MEMBER: Anggota yang akan ditambahi binding. Harus dalam bentuk
user|group|serviceAccount:email
ataudomain:domain
. - Berikan izin yang diperlukan kepada akun layanan untuk berbicara dengan layanan Google target Anda. Misalnya, jika Anda ingin memanggil layanan Google Logging, akun layanan ini harus menyertakan izin akses yang diperlukan untuk berkomunikasi dengan layanan tersebut. Lihat juga Memahami peran.
- Sebelum men-deploy proxy API yang dikonfigurasi untuk menggunakan autentikasi Google, Anda memerlukan:
- Nama akun layanan yang Anda buat sebelumnya. Contoh:
SA_NAME@PROJECT_ID.
- Saat pengguna melakukan deployment (penyebar), Anda harus sudah memiliki atau diberi izin
Izin
iam.serviceAccounts.actAs
di akun layanan. Lihat Memberikan, mengubah, dan mencabut akses ke resource.
- Nama akun layanan yang Anda buat sebelumnya. Contoh:
- Deploy proxy API yang berisi konfigurasi autentikasi Google yang Anda terapkan. Anda dapat
gunakan UI atau API Apigee untuk men-deploy proxy. Untuk mempelajari lebih lanjut, lihat Men-deploy proxy API.
- Jika menggunakan UI, Anda akan diminta untuk memberikan nama akun layanan. Gunakan nama
dari akun layanan proxy yang Anda buat pada Langkah 1. Contoh:
SA_NAME@PROJECT_ID.
. - Jika Anda lebih suka men-deploy proxy menggunakan Apigee deployment API, berikut contohnya
perintah cURL yang dapat Anda gunakan. Pemberitahuan
bahwa perintah tersebut menyertakan nama akun layanan sebagai parameter kueri. Ini adalah nama
akun layanan yang dibuat di Langkah 1:
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/ENV_NAME/apis/apiproxy/revisions/2/deployments?serviceAccount=SA_NAME@PROJECT_ID." \ -H "Content-Type: application/json" -X POST
Dengan keterangan:
TOKEN
: Token OAuth yang harus Anda dapatkan sebagai imbalan atas memiliki kredensial yang lengkap. Untuk mengetahui detailnya, lihat Mendapatkan token akses OAuth 2.0.ORG_NAME
: Nama organisasi Apigee Anda.ENV_NAME
: Nama lingkungan tempat proxy API akan di-deploy.SA_NAME
: Nama yang Anda berikan saat membuat akun layanan.PROJECT_ID
: ID project Google Cloud Anda (sama dengan nama organisasi).
- Jika menggunakan UI, Anda akan diminta untuk memberikan nama akun layanan. Gunakan nama
dari akun layanan proxy yang Anda buat pada Langkah 1. Contoh:
- Saat deployment selesai, uji proxy API Anda untuk memastikan layanan Google menampilkan respons yang diharapkan.
Dengan keterangan:
Men-deploy pada Apigee Hybrid
Langkah-langkah berikut menjelaskan cara men-deploy proxy API ke Apigee Hybrid yang dikonfigurasi untuk
dan melakukan autentikasi ke layanan Google.
Langkah-langkahnya mengasumsikan bahwa Anda telah membuat {i>proxy<i}, dan
bahwa kode ini menyertakan elemen <Authentication>
dalam salah satu konteks yang didukung yang tercantum.
- Buat akun layanan dan kunci untuk komponen runtime hybrid Apigee dengan menggunakan
salah satu metode berikut:
- Gunakan
Alat
create-service-account
yang disediakan dengan Apigee Hybrid untuk membuat layananapigee-runtime
menggunakan akun layanan. Alat ini membuat akun layanan dan menampilkan kunci akun layanan. Lihat create-service-account untuk mengetahui detailnya. - Buat akun layanan di Konsol Google Cloud atau dengan
menggunakan perintah
gcloud
. Lihat Membuat dan mengelola akun layanan. Untuk mengambil kunci akun layanan, lihat Membuat dan mengelola kunci akun layanan.
- Gunakan
Alat
- Buka file
overrides.yaml
dan tentukan jalur ke file kunci akun layanan untuk setiap lingkungan yang memerlukan kemampuan autentikasi Google:envs: - name: "ENVIRONMENT_NAME" serviceAccountPaths: runtime: "KEY_FILE_PATH"
Contoh:
envs: - name: "test" serviceAccountPaths: runtime: "./service_accounts/my_runtime_sa.json"
- Terapkan file penggantian ke cluster Anda menggunakan apigeectl apply.
- Buat akun layanan kedua, yang kami sebut proxy akun layanan Anda. Akun layanan ini harus berada di Google Cloud yang sama yang Anda gunakan untuk membuat Organisasi Apigee. Anda harus memberikan alamat email akun layanan ini saat men-deploy API proxy yang dikonfigurasi untuk menggunakan autentikasi Google, dan token OAuth yang dibuat akan mewakili akun layanan.
- Memberi pengguna yang akan melakukan deployment (deployment)
iam.serviceAccounts.actAs
izin akses pada akun layanan. Lihat juga Tentang izin akun layanan.gcloud iam service-accounts add-iam-policy-binding \ SA_NAME@PROJECT_ID. \ --member="MEMBER" \ --role="roles/iam.serviceAccountUser"
- PROJECT_ID: ID project. ID sama dengan nama organisasi Anda.
- SA_NAME: Nama yang Anda berikan saat membuat akun layanan.
- MEMBER: Anggota yang akan ditambahi binding. Harus dalam bentuk pengguna|grup|serviceAccount:email atau domain:domain.
- Berikan izin akun layanan proxy yang diperlukan untuk berbicara dengan layanan Google yang Anda targetkan. Misalnya, jika Anda ingin memanggil layanan Google Logging, akun layanan ini harus menyertakan izin akses yang diperlukan untuk berkomunikasi dengan layanan tersebut. Lihat juga Memahami peran.
- Pastikan runtime memiliki kemampuan untuk meniru identitas
akun layanan proxy. Untuk memberikan kemampuan ini, beri akun layanan runtime izin
iam.serviceAccountTokenCreator
peran pada akun layanan proxy. Lihat juga Tentang akun layanan izin akses. Contoh:gcloud iam service-accounts add-iam-policy-binding \ PROXY_SA_NAME@PROJECT_ID. \ --member=serviceAccount:RUNTIME_SA_NAME@PROJECT_ID. \ --role=roles/iam.serviceAccountTokenCreator
Dengan keterangan:
- PROJECT_ID: ID project. ID sama dengan organisasi Anda nama. Perhatikan bahwa Anda tidak harus menggunakan proyek yang terkait dengan organisasi Anda untuk membuat akun layanan runtime. Pastikan Anda menggunakan project ID yang benar dalam perintah ini.
- PROXY_SA_NAME: ID untuk akun layanan proxy.
- RUNTIME_SA_NAME: ID untuk akun layanan runtime.
- Sebelum men-deploy proxy API yang dikonfigurasi untuk menggunakan autentikasi Google, Anda memerlukan:
- Nama akun layanan proxy yang Anda buat sebelumnya. Contoh:
PROXY_SA_NAME@PROJECT_ID.
- Saat pengguna melakukan deployment, Anda harus sudah memiliki atau diberi
Izin
iam.serviceAccounts.actAs
di Project Google Cloud tempat organisasi Apigee disediakan. Lihat Memberikan, mengubah, dan mencabut akses ke resource.
- Nama akun layanan proxy yang Anda buat sebelumnya. Contoh:
- Deploy proxy API yang berisi konfigurasi autentikasi Google yang Anda terapkan. Anda dapat
gunakan UI atau API Apigee untuk men-deploy proxy. Untuk mempelajari lebih lanjut, lihat Men-deploy proxy API.
- Jika menggunakan UI, Anda akan diminta untuk memberikan nama akun layanan. Gunakan nama
dari akun layanan proxy yang Anda buat sebelumnya. Contoh:
PROXY_SA_NAME@PROJECT_ID.
. - Jika Anda lebih suka men-deploy proxy menggunakan Apigee deployment API, berikut contohnya
perintah cURL yang dapat Anda gunakan. Pemberitahuan
bahwa perintah tersebut menyertakan nama akun layanan sebagai parameter kueri. Ini adalah nama
dari akun layanan proxy:
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/ENV_NAME/apis/apiproxy/revisions/2/deployments?serviceAccount=PROXY_SA_NAME@PROJECT_ID." \ -H "Content-Type: application/json" -X POST
Dengan keterangan:
TOKEN
: Token OAuth yang harus Anda dapatkan sebagai imbalan atas memiliki kredensial yang lengkap. Untuk mengetahui detailnya, lihat Mendapatkan token akses OAuth 2.0.ORG_NAME
: Nama organisasi Apigee Anda.ENV_NAME
: Nama lingkungan tempat proxy API akan di-deploy.PROXY_SA_NAME
: Nama akun layanan proxy.PROJECT_ID
: ID project Google Cloud Anda (sama dengan nama organisasi).
- Jika menggunakan UI, Anda akan diminta untuk memberikan nama akun layanan. Gunakan nama
dari akun layanan proxy yang Anda buat sebelumnya. Contoh:
- Saat deployment selesai, uji proxy API Anda untuk memastikan layanan Google menampilkan respons yang diharapkan.
Dengan keterangan:
Tentang izin akun layanan
Untuk mengonfigurasi proxy API agar dapat menggunakan autentikasi Google, Anda harus membuat akun layanan seperti yang dijelaskan pada tabel berikut. Lihat juga Membuat dan mengelola akun layanan.
Akun layanan | Wajib untuk | Deskripsi |
---|---|---|
Proxy | Apigee dan Apigee Hybrid | Memiliki izin yang diperlukan bagi proxy API untuk melakukan panggilan terautentikasi ke aplikasi Google yang ditargetkan layanan IT perusahaan mereka.
|
Runtime | Khusus Apigee Hybrid | Mengizinkan runtime Apigee menghasilkan token untuk melakukan autentikasi pada layanan Google yang diminta oleh proxy API. Akun layanan ini "meniru identitas" konfigurasi khusus proxy akun layanan untuk melakukan panggilan yang diautentikasi atas namanya.
|