Menyiapkan autentikasi untuk ABAP SDK edisi SAP BTP untuk Google Cloud

Dokumen ini menjelaskan cara melakukan autentikasi ke Google Cloud dari ABAP SDK edisi SAP BTP untuk Google Cloud.

Aplikasi yang dikembangkan menggunakan ABAP SDK edisi SAP BTP untuk Google Cloud memerlukan autentikasi agar dapat terhubung ke Google Cloud API.

Untuk autentikasi dan otorisasi agar dapat mengakses Google Cloud API, SDK terutama menggunakan token. Selain itu, SDK juga mendukung kunci API untuk melakukan autentikasi ke Google Cloud API yang menggunakan kunci API. Hanya beberapa Google Cloud API yang menggunakan kunci API untuk autentikasi. Misalnya, Google Maps Platform. Tinjau dokumentasi autentikasi untuk layanan atau API yang ingin Anda gunakan untuk mengetahui apakah layanan atau API tersebut mendukung kunci API atau tidak.

Bergantung pada Google Cloud API yang perlu diakses, Anda dapat memilih metode autentikasi yang sesuai. Daftar berikut merangkum berbagai metode autentikasi yang didukung oleh SDK:

Autentikasi menggunakan token melalui Workload Identity Federation

Workload Identity Federation mengikuti spesifikasi pertukaran token OAuth 2.0. Anda memberikan kredensial dari penyedia identitas (IdP) ke Layanan Token Keamanan, yang memverifikasi identitas pada kredensial, lalu menampilkan token gabungan sebagai imbalan. Anda dapat menggunakan token ini untuk meniru identitas akun layanan dan mendapatkan token akses OAuth 2.0 yang berumur pendek. Dengan token akses jangka pendek, Anda dapat memanggil Google Cloud API apa pun yang dapat diakses oleh akun layanan.

Untuk autentikasi menggunakan token melalui Workload Identity Federation, aktifkan Google Cloud API berikut:

Untuk mengetahui informasi tentang cara mengaktifkan Google Cloud API, lihat Mengaktifkan API.

Untuk autentikasi menggunakan token melalui Workload Identity Federation, langkah-langkah konfigurasi tingkat tinggi adalah sebagai berikut:

  1. Di SAP BTP, buat instance layanan Otorisasi dan Kepercayaan (XSUAA).
  2. Di Google Cloud, buat akun layanan.
  3. Di Google Cloud, konfigurasikan Workload Identity Federation.
  4. Di SAP BTP, konfigurasi ABAP SDK untuk Google Cloud agar dapat menggunakan Workload Identity Federation.

Membuat instance layanan Otorisasi dan Kepercayaan (XSUAA)

Untuk memberikan layanan yang diperlukan ke aplikasi back-end, buat instance layanan Otorisasi dan Kepercayaan (XSUAA) dengan melakukan langkah-langkah berikut:

  1. Login ke SAP BTP Cockpit. Untuk informasi selengkapnya, lihat halaman SAP Mengakses Kokpit.
  2. Pilih sub-akun Anda.
  3. Buat instance layanan XSUAA:

    1. Buka Layanan > Service Marketplace.
    2. Telusuri dan pilih Authorization & Trust Management Service (XSUAA).
    3. Klik Create.
    4. Dalam dialog New Instance or Subscription yang muncul, masukkan nilai untuk kolom berikut:

      • Plan: pilih Application.
      • Runtime environment: pilih Cloud Foundry.
      • Ruang: pilih nama ruang.
      • Instance name: masukkan nama untuk instance layanan XSUAA.
    5. Klik Create.

  4. Buat kunci layanan:

    1. Buka Instance and Subscription > Instances.
    2. Pilih instance layanan XSUAA yang Anda buat di langkah sebelumnya, lalu klik tab Service keys.
    3. Klik Create.
    4. Masukkan nama kunci layanan, lalu klik Buat.
    5. Untuk kunci layanan yang baru dibuat, klik menu Tindakan (), lalu pilih Lihat.
    6. Dari kredensial kunci layanan, perhatikan hal-hal berikut:

      • url
      • clientid
      • clientsecret

    Anda memerlukan kredensial kunci layanan ini saat mengonfigurasi autentikasi ke Google Cloud.

Membuat akun layanan

Di konsol Google Cloud, buat akun layanan IAM. Akun layanan ini harus merupakan akun utama dalam project Google Cloud yang berisi Google Cloud API yang akan Anda gunakan dengan menggunakan SDK.

  1. Di konsol Google Cloud, pilih project tempat Anda ingin membuat akun layanan.

    • Jika Anda membuat akun layanan di project yang sama yang berisi Google Cloud API, akun layanan tersebut akan otomatis ditambahkan sebagai akun utama ke project tersebut.

    • Jika Anda membuat akun layanan di project selain project tempat Google Cloud API diaktifkan, Anda harus menambahkan akun layanan ke project tersebut pada langkah tambahan. Untuk informasi selengkapnya, lihat Menambahkan akun layanan ke project Google Cloud.

  2. Buat akun layanan untuk autentikasi dan otorisasi untuk mengakses Google Cloud API.

    Buka halaman Service accounts

    Untuk mengetahui informasi tentang cara membuat akun layanan, lihat Membuat akun layanan.

  3. Di konsol Google Cloud, berikan peran IAM yang diperlukan kepada akun layanan untuk mengakses fungsi API. Guna memahami persyaratan peran untuk Google Cloud API, lihat dokumentasi API individual dan ikuti prinsip hak istimewa terendah. Untuk mengetahui informasi selengkapnya tentang peran bawaan khusus API, lihat Referensi peran dasar dan bawaan IAM.

  4. Jika membuat akun layanan dalam project selain project yang berisi Google Cloud API yang akan digunakan dengan menggunakan SDK, catat nama akun layanan tersebut. Anda menentukan nama saat menambahkan akun layanan ke project tersebut.

Menambahkan akun layanan ke project Google Cloud

Jika Anda membuat akun layanan untuk ABAP SDK untuk Google Cloud dalam project selain project yang berisi Google Cloud API yang ingin Anda gunakan dengan SDK, maka Anda perlu menambahkan layanan tersebut akun ke project Google Cloud yang berisi Google Cloud API.

Jika membuat akun layanan dalam project yang sama yang berisi Google Cloud API, maka Anda dapat melewati langkah ini.

Untuk menambahkan akun layanan yang ada ke project Google Cloud yang berisi Google Cloud API, lakukan langkah-langkah berikut:

  1. Di Konsol Google Cloud, buka halaman Izin IAM.

    Buka halaman IAM permissions

  2. Pastikan nama project yang berisi Google Cloud API target ditampilkan di dekat bagian atas halaman. Contoh:

    Izin untuk project 'PROJECT_NAME'

    Jika tidak, ganti project.

  3. Di halaman Permissions IAM, klik Grant access.

  4. Pada dialog Berikan akses ke 'PROJECT_NAME' yang muncul, lakukan langkah-langkah berikut:

    1. Di kolom New principals, tentukan nama akun layanan.
    2. Di kolom Pilih peran, tentukan peran yang relevan. Misalnya, untuk Pub/Sub, jika ingin mengubah topik dan langganan, serta akses untuk memublikasikan dan menggunakan pesan, Anda dapat menentukan peran Pub/Sub Editor (roles/pubsub.editor).

      Untuk mengetahui detail selengkapnya tentang peran bawaan khusus API, lihat Referensi peran dasar dan bawaan IAM.

    3. Tambahkan peran lain sesuai kebutuhan untuk penggunaan API Anda. Sebaiknya terapkan prinsip hak istimewa terendah.

    4. Klik Save. Akun layanan akan muncul dalam daftar akun utama project di halaman IAM.

Akun layanan sekarang dapat digunakan untuk mengakses Google Cloud API dalam project ini.

Mengonfigurasi Workload Identity Federation

Untuk mendapatkan izin yang Anda perlukan guna mengonfigurasi Workload Identity Federation, minta administrator untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Untuk mengonfigurasi Workload Identity Federation, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Penyedia workload dan kumpulan workload baru.

    Buka Penyedia workload dan workload pool baru

  2. Di bagian Buat kumpulan identitas, masukkan nilai untuk kolom berikut:

    • Nama: nama untuk kumpulan. Nama ini juga digunakan sebagai ID pool. Anda tidak dapat mengubah ID pool nanti.
    • Deskripsi: teks yang menjelaskan tujuan kumpulan.
  3. Klik Lanjutkan.

  4. Di bagian Add a provider to pool, tambahkan setelan penyedia:

    1. Di kolom Select a provider, pilih OpenID Connect (OIDC).
    2. Masukkan detail penyedia berikut:

      • Nama penyedia: masukkan nama untuk penyedia.
      • Penerbit(URL): masukkan URL dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA. Tambahkan /oauth/token ke URL.
      • Audience: pilih Allowed audience, lalu masukkan client ID dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
  5. Klik Lanjutkan.

  6. Di bagian Configure provider attributes, di kolom OIDC 1, masukkan assertion.sub.

  7. Klik Save.

  8. Perhatikan hal-hal berikut:

    • ID Kumpulan
    • ID Penyedia

    Anda memerlukan ID ini saat mengonfigurasi autentikasi di aplikasi Fiori konfigurasi SDK.

Mengizinkan identitas eksternal untuk meniru identitas akun layanan

Untuk meniru identitas akun layanan dari workload gabungan, berikan Workload Identity User (roles/iam.workloadIdentityUser) pada akun layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Untuk mengizinkan identitas eksternal meniru identitas akun layanan, lakukan hal berikut:

  1. Di Konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Pilih kumpulan workload identity yang Anda buat di bagian configure Workload Identity Federation.

  3. Untuk memberikan akses ke kumpulan workload identity, klik Berikan akses.

  4. Dalam daftar Service account, pilih akun layanan yang memiliki akses ke Google Cloud API. Jika Anda menggunakan beberapa akun layanan, tambahkan semuanya di sini.

  5. Di kolom Nama atribut, pilih Subjek.

  6. Di kolom Nilai atribut, masukkan client ID dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.

  7. Klik Save.

  8. Dalam dialog Konfigurasi aplikasi Anda yang muncul, klik Tutup.

Mengonfigurasi ABAP SDK untuk Google Cloud agar dapat menggunakan Workload Identity Federation

Anda membuat artefak manajemen komunikasi menggunakan aplikasi manajemen komunikasi SAP.

Untuk membuat artefak pengelolaan komunikasi untuk autentikasi menggunakan layanan XSUAA dan Workload Identity Federation, Anda harus menggunakan skenario komunikasi /GOOG/COM_SDK_WIF yang dikirimkan dengan ABAP SDK untuk Google Cloud.

Kemudian, Anda menggunakan aplikasi Fiori konfigurasi SDK untuk membuat peta komunikasi. Dalam peta komunikasi, Anda menentukan kunci klien unik yang digunakan dalam program ABAP untuk autentikasi ke Google Cloud.

  1. Mengakses launchpad SAP Fiori dari sistem BTP ABAP tempat ABAP SDK untuk Google Cloud diinstal.
  2. Buka Semua ruang > Administrasi > Pengelolaan Komunikasi.
  3. Membuat sistem komunikasi:
    1. Buka aplikasi Sistem Komunikasi.
    2. Klik New.
    3. Pada dialog New Communication System yang muncul, masukkan nilai untuk kolom berikut:
      • System ID: masukkan ID sistem.
      • System name: masukkan nama sistem.
    4. Klik Create.
    5. Di kolom Host name, masukkan URL tanpa https:// dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
    6. Di kolom Port, masukkan 443.
    7. Pada tab Users for Outbound Communication, klik Tambahkan.
    8. Berikan detail berikut:
      • Metode autentikasi: pilih Nama Pengguna dan Sandi.
      • Nama pengguna/client ID: masukkan client ID dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
      • Password: masukkan rahasia klien dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
    9. Klik Save.
  4. Membuat pengaturan komunikasi:

    1. Buka aplikasi Pengaturan Komunikasi.
    2. Klik New.
    3. Dalam dialog New Communication Arrangement yang muncul, masukkan nilai untuk kolom berikut:

      • Skenario: pilih Authentication using Workload Identity Federation (/GOOG/COM_SDK_WIF).
      • Nama pengaturan: masukkan nama untuk pengaturan komunikasi.
    4. Klik Create.

    5. Untuk pengaturan komunikasi yang muncul, di kolom Communication System, pilih sistem komunikasi yang Anda buat di langkah sebelumnya.

    6. Berikan detail berikut dari bagian Configure Workload Identity Federation:

      • Workload Identity Federation Pool ID: masukkan ID kumpulan gabungan identitas workload.
      • Workload Identity Federation Provider ID: masukkan ID penyedia gabungan identitas workload.
    7. Di bagian Outbound services, di kolom Path, masukkan /oauth/token.

    8. Klik Save.

  5. Buat kunci klien dan peta komunikasi:

    1. Buka ruang yang berisi aplikasi Fiori untuk konfigurasi SDK.
    2. Buka aplikasi Google SDK: Konfigurasi Utama.
    3. Klik Create.
    4. Pada dialog Buat yang muncul, masukkan nama kunci klien.
    5. Klik Lanjutkan.
    6. Berikan detail berikut:
      • Akun layanan: masukkan akun layanan yang diberi akses ke Google Cloud API.
      • Project ID: masukkan ID project Google Cloud. Untuk informasi tentang project ID, lihat Mengidentifikasi project.
      • Nomor project: masukkan nomor project Google Cloud. Untuk informasi tentang nomor project, lihat Mengidentifikasi project.
      • Jenis autentikasi: pilih W (Workload Identity Federation).
    7. Untuk peta komunikasi yang muncul, di kolom Pengaturan komunikasi, pilih pengaturan komunikasi yang Anda buat di langkah sebelumnya.
    8. Klik Create. Sebuah dialog akan muncul untuk mengonfirmasi bahwa Anda setuju untuk menggunakan ABAP SDK untuk Google Cloud berdasarkan persyaratan Google Cloud standar.
    9. Untuk memvalidasi konfigurasi autentikasi, klik Periksa koneksi. Centang hijau untuk entri menunjukkan konfigurasi yang berhasil. Jika terjadi error, buka halaman pemecahan masalah untuk mendapatkan panduan tentang cara mengatasi error umum.

Autentikasi menggunakan kunci API yang disimpan di Secret Manager

Saat menggunakan kunci API untuk autentikasi ke Google Cloud, Anda dapat menyimpan kunci API dengan aman menggunakan layanan Secret Manager Google Cloud.

Untuk autentikasi menggunakan kunci API yang disimpan di Secret Manager, aktifkan Google Cloud API berikut:

Untuk mengetahui informasi tentang cara mengaktifkan Google Cloud API, lihat Mengaktifkan API.

Untuk mendapatkan izin yang Anda perlukan guna mengonfigurasi Secret Manager dan Workload Identity Federation, minta administrator untuk memberi Anda peran IAM berikut pada project:

Untuk autentikasi menggunakan kunci API yang disimpan di Secret Manager, langkah-langkah konfigurasi tingkat tingginya adalah sebagai berikut:

  1. Di SAP BTP, buat instance layanan Otorisasi dan Kepercayaan (XSUAA).
  2. Di Google Cloud, buat akun layanan.
  3. Di Google Cloud, konfigurasikan Workload Identity Federation.
  4. Di Google Cloud, buat kunci API.
  5. Di Google Cloud, buat rahasia dan simpan kunci API.
  6. Di SAP BTP, konfigurasi ABAP SDK untuk Google Cloud agar dapat menggunakan kunci API dari Secret Manager.

Saat melakukan autentikasi menggunakan kunci API yang disimpan di Secret Manager, Anda dapat menggunakan kembali instance layanan, akun layanan, serta penyedia dan penyedia Workload Identity Federation yang Anda buat untuk autentikasi menggunakan token.

Membuat Kunci API

Untuk autentikasi menggunakan kunci API, Anda perlu membuat kunci API. String kunci API adalah string terenkripsi, misalnya, AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe. ABAP SDK untuk Google Cloud menggunakan string kunci API dalam permintaan HTTP untuk melakukan autentikasi dengan aman saat memanggil Google Cloud API.

Google Cloud menyediakan beberapa cara untuk membuat kunci API.

Untuk membuat kunci API menggunakan konsol Google Cloud, lakukan langkah-langkah berikut:

  1. Di Konsol Google Cloud, buka halaman Langganan.

    Buka Kredensial

  2. Klik Create Credentials dan pilih API key dari menu.

    • Dialog API key created akan menampilkan string kunci API. Salin string kunci Anda dan amankan. Anda memerlukan kunci API ini untuk mengonfigurasi autentikasi ke Google Cloud.

    • Secara default, kunci API tidak dibatasi. Sebaiknya batasi kunci API dengan memilih API yang dapat menggunakan kunci API ini. Untuk mengetahui informasi selengkapnya tentang cara menambahkan pembatasan API, lihat artikel Menambahkan pembatasan API.

Membuat secret dan menyimpan kunci API

  1. Di konsol Google Cloud, buka halaman Secret Manager.

    Buka Secret Manager

  2. Klik Create secret.

  3. Di halaman Buat rahasia, di bagian Nama, masukkan nama untuk rahasia tersebut. Nama rahasia dapat berisi huruf besar dan kecil, angka, tanda hubung, dan garis bawah. Panjang maksimum yang diizinkan untuk sebuah nama adalah 255 karakter.

  4. Di kolom Secret value, masukkan kunci API yang Anda buat di bagian Membuat kunci API.

  5. Klik Create secret. Konten secret Anda disimpan dalam versi secret.

  6. Klik nama rahasia yang Anda buat.

  7. Pada tab Versions yang terbuka, perhatikan hal berikut:

    • Nama rahasia
    • Versi

    Anda memerlukan detail rahasia ini saat mengonfigurasi autentikasi ke Google Cloud.

Mengonfigurasi ABAP SDK untuk Google Cloud agar dapat menggunakan kunci API dari Secret Manager

Anda membuat artefak manajemen komunikasi menggunakan aplikasi manajemen komunikasi SAP.

Untuk membuat artefak pengelolaan komunikasi untuk autentikasi menggunakan layanan XSUAA dan Workload Identity Federation, Anda harus menggunakan skenario komunikasi /GOOG/COM_SDK_APIKSM yang dikirimkan dengan ABAP SDK untuk Google Cloud.

Kemudian, Anda menggunakan aplikasi Fiori konfigurasi SDK untuk membuat peta komunikasi. Dalam peta komunikasi, Anda menentukan kunci klien unik yang digunakan dalam program ABAP untuk autentikasi ke Google Cloud.

  1. Mengakses launchpad SAP Fiori dari sistem BTP ABAP tempat ABAP SDK untuk Google Cloud diinstal.
  2. Buka Semua ruang > Administrasi > Pengelolaan Komunikasi.
  3. Membuat sistem komunikasi:
    1. Buka aplikasi Sistem Komunikasi.
    2. Klik New.
    3. Pada dialog New Communication System yang muncul, masukkan nilai untuk kolom berikut:
      • System ID: masukkan ID sistem.
      • System name: masukkan nama sistem.
    4. Klik Create.
    5. Di kolom Host name, masukkan URL tanpa https:// dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
    6. Di kolom Port, masukkan 443.
    7. Pada tab Users for Outbound Communication, klik Tambahkan.
    8. Berikan detail berikut:
      • Metode autentikasi: pilih Nama Pengguna dan Sandi.
      • Nama pengguna/client ID: masukkan client ID dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
      • Password: masukkan rahasia klien dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
    9. Klik Save.
  4. Membuat pengaturan komunikasi:

    1. Buka aplikasi Pengaturan Komunikasi.
    2. Klik New.
    3. Dalam dialog New Communication Arrangement yang muncul, masukkan detail berikut:

      • Skenario: pilih Authentication using API Key with Secret Manager (/GOOG/COM_SDK_APIKSM).
      • Nama pengaturan: masukkan nama untuk pengaturan komunikasi.
    4. Klik Create.

    5. Untuk pengaturan komunikasi yang muncul, di kolom Communication System, pilih sistem komunikasi yang Anda buat di langkah sebelumnya.

    6. Di bagian Properti tambahan, berikan nilai untuk properti berikut:

    7. Di bagian Outbound services, di kolom Path, masukkan /oauth/token.

    8. Klik Save.

  5. Buat kunci klien dan peta komunikasi:

    1. Buka ruang yang berisi aplikasi Fiori untuk konfigurasi SDK.
    2. Buka aplikasi Google SDK: Konfigurasi Utama.
    3. Klik Create.
    4. Pada dialog Buat yang muncul, masukkan nama kunci klien.
    5. Klik Lanjutkan.
    6. Berikan detail berikut:

      • Akun layanan: masukkan akun layanan yang diberi akses ke Google Cloud API.
      • Project ID: masukkan ID project Google Cloud. Untuk informasi tentang project ID, lihat Mengidentifikasi project.
      • Nomor project: masukkan nomor project Google Cloud. Untuk mengetahui informasi tentang nomor project, lihat Mengidentifikasi project.
      • Authentication type: pilih V (API Key using Secret Manager).
    7. Untuk peta komunikasi yang muncul, di kolom Pengaturan komunikasi, pilih pengaturan komunikasi yang Anda buat di langkah sebelumnya.

    8. Klik Create. Sebuah dialog akan muncul untuk mengonfirmasi bahwa Anda setuju untuk menggunakan ABAP SDK untuk Google Cloud berdasarkan persyaratan Google Cloud standar.

    9. Untuk memvalidasi konfigurasi autentikasi, klik Periksa koneksi. Centang hijau untuk entri menunjukkan konfigurasi yang berhasil. Jika terjadi error, buka halaman pemecahan masalah untuk mendapatkan panduan tentang cara mengatasi error umum.

Dapatkan dukungan

Jika Anda memerlukan bantuan untuk menyelesaikan masalah terkait ABAP SDK untuk Google Cloud, lakukan hal berikut: