Menyiapkan autentikasi untuk ABAP SDK edisi SAP BTP untuk Google Cloud

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

Aplikasi yang dikembangkan menggunakan ABAP SDK untuk Google Cloud edisi SAP BTP 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 ini juga mendukung kunci API untuk melakukan autentikasi ke Google Cloud API yang menggunakan kunci API. Hanya sedikit 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 menentukan apakah layanan atau API tersebut mendukung kunci API atau tidak.

Bergantung pada Google Cloud API yang perlu Anda akses, 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 akses sebagai gantinya. Anda dapat menggunakan token ini untuk meniru identitas akun layanan dan mendapatkan token akses yang berlaku singkat. Dengan token akses yang berlaku singkat, Anda dapat memanggil Google Cloud API 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 Authorization and Trust (XSUAA).
  2. Di Google Cloud, buat akun layanan.
  3. Di Google Cloud, konfigurasi Workload Identity Federation.
  4. Di SAP BTP, konfigurasi ABAP SDK untuk Google Cloud agar menggunakan Workload Identity Federation.

Membuat instance layanan Authorization and Trust (XSUAA)

Untuk menyediakan layanan yang diperlukan ke aplikasi backend, buat instance layanan Authorization and Trust (XSUAA) dengan melakukan langkah-langkah berikut:

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

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

      • Rencana: pilih Aplikasi.
      • Lingkungan runtime: pilih Cloud Foundry.
      • Ruang: pilih nama ruang.
      • Nama instance: 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 Create.
    5. Untuk kunci layanan yang baru dibuat, klik menu Actions (), lalu pilih View.
    6. Dari kredensial kunci layanan, catat 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, maka akun layanan akan ditambahkan sebagai akun utama ke project secara otomatis.

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

  2. Buat akun layanan untuk autentikasi dan otorisasi agar dapat 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. Agar 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 tersebut 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 tambahan sesuai kebutuhan untuk penggunaan API Anda. Sebaiknya terapkan prinsip hak istimewa terendah.

    4. Klik Simpan. 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 diperlukan 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 dan workload pool baru.

    Buka Penyedia workload dan workload pool baru

  2. Di bagian Buat identity pool, masukkan nilai untuk kolom berikut:

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

  4. Di bagian Tambahkan penyedia ke kumpulan, tambahkan setelan penyedia:

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

      • Nama penyedia: masukkan nama untuk penyedia.
      • Issuer(URL): masukkan URL dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA. Tambahkan /oauth/token ke URL.
      • Audiens: pilih Audiens yang diizinkan dan masukkan client ID dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
  5. Klik Lanjutkan.

  6. Di bagian Konfigurasi atribut penyedia, di kolom OIDC 1, masukkan assertion.sub.

  7. Klik Simpan.

  8. Perhatikan 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 akun layanan dari beban kerja gabungan, berikan Workload Identity User (roles/iam.workloadIdentityUser) di akun layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Agar identitas eksternal dapat meniru identitas akun layanan, lakukan hal berikut:

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

    Buka Workload Identity Pool

  2. Pilih workload identity pool yang Anda buat di bagian konfigurasi Workload Identity Federation.

  3. Untuk memberikan akses ke workload identity pool, 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 Attribute value, masukkan client ID dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.

  7. Klik Simpan.

  8. Pada dialog Configure your application yang muncul, klik Dismiss.

Mengonfigurasi ABAP SDK untuk Google Cloud agar menggunakan Workload Identity Federation

Anda membuat artefak pengelolaan komunikasi menggunakan aplikasi pengelolaan komunikasi SAP.

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

Kemudian, Anda akan 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. Akses peluncur SAP Fiori dari sistem ABAP BTP tempat ABAP SDK untuk Google Cloud diinstal.
  2. Buka Semua ruang > Administrasi > Pengelolaan Komunikasi.
  3. Buat sistem komunikasi:
    1. Buka aplikasi Sistem Komunikasi.
    2. Klik New.
    3. Pada dialog New Communication System yang muncul, masukkan nilai untuk kolom berikut:
      • ID Sistem: masukkan ID sistem.
      • Nama sistem: 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 Pengguna untuk Komunikasi Keluar, klik Tambahkan.
    8. Berikan detail berikut:
      • Authentication method: pilih User Name and Password.
      • Nama pengguna/client ID: masukkan client ID dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
      • Sandi: masukkan rahasia klien dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
    9. Klik Simpan.
  4. Buat pengaturan komunikasi:

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

      • Skenario: pilih Autentikasi menggunakan 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 Mengonfigurasi Workload Identity Federation:

      • Workload Identity Federation Pool ID: masukkan ID workload identity federation pool.
      • Workload Identity Federation Provider ID: masukkan ID penyedia workload identity federation.
    7. Di bagian Layanan keluar, di kolom Jalur, masukkan /oauth/token.

    8. Klik Simpan.

  5. Buat kunci klien dan peta komunikasi:

    1. Buka ruang yang berisi aplikasi Fiori untuk konfigurasi SDK.
    2. Buka aplikasi Google SDK: Main Configuration.
    3. Klik Create.
    4. Pada dialog Create 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 project ID 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.
      • Authentication type: pilih W (Workload Identity Federation).
    7. Untuk peta komunikasi yang muncul, di kolom Communication arrangement, pilih pengaturan komunikasi yang Anda buat di langkah sebelumnya.
    8. Klik Create. Dialog akan muncul yang mengonfirmasi bahwa Anda setuju untuk menggunakan ABAP SDK untuk Google Cloud berdasarkan persyaratan Google Cloud standar.
    9. Untuk memvalidasi konfigurasi autentikasi, klik Check connection. Centang hijau untuk entri menunjukkan konfigurasi yang berhasil. Jika terjadi error, buka halaman pemecahan masalah untuk mendapatkan panduan guna menyelesaikan 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 diperlukan 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 tinggi adalah sebagai berikut:

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

Saat mengautentikasi menggunakan kunci API yang disimpan di Secret Manager, Anda dapat menggunakan kembali instance layanan XSUAA, akun layanan, dan kumpulan serta 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 mengautentikasi 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, lalu 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 Buat secret.

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

  4. Di kolom Nilai secret, masukkan kunci API yang Anda buat di bagian Membuat kunci API.

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

  6. Klik nama secret yang Anda buat.

  7. Di tab Versions yang terbuka, catat hal berikut:

    • Nama rahasia
    • Versi

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

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

Anda membuat artefak pengelolaan komunikasi menggunakan aplikasi pengelolaan komunikasi SAP.

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

Kemudian, Anda akan 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. Akses peluncur SAP Fiori dari sistem ABAP BTP tempat ABAP SDK untuk Google Cloud diinstal.
  2. Buka Semua ruang > Administrasi > Pengelolaan Komunikasi.
  3. Buat sistem komunikasi:
    1. Buka aplikasi Sistem Komunikasi.
    2. Klik New.
    3. Pada dialog New Communication System yang muncul, masukkan nilai untuk kolom berikut:
      • ID Sistem: masukkan ID sistem.
      • Nama sistem: 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 Pengguna untuk Komunikasi Keluar, klik Tambahkan.
    8. Berikan detail berikut:
      • Authentication method: pilih User Name and Password.
      • Nama pengguna/client ID: masukkan client ID dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
      • Sandi: masukkan secret klien dari kredensial kunci layanan yang Anda catat saat membuat instance layanan XSUAA.
    9. Klik Simpan.
  4. Buat pengaturan komunikasi:

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

      • Skenario: pilih Autentikasi menggunakan Kunci API dengan 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 Layanan keluar, di kolom Jalur, masukkan /oauth/token.

    8. Klik Simpan.

  5. Buat kunci klien dan peta komunikasi:

    1. Buka ruang yang berisi aplikasi Fiori untuk konfigurasi SDK.
    2. Buka aplikasi Google SDK: Main Configuration.
    3. Klik Create.
    4. Pada dialog Create 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 project ID 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 V (Kunci API menggunakan Secret Manager).
    7. Untuk peta komunikasi yang muncul, di kolom Communication arrangement, pilih pengaturan komunikasi yang Anda buat di langkah sebelumnya.

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

    9. Untuk memvalidasi konfigurasi autentikasi, klik Check connection. Centang hijau untuk entri menunjukkan konfigurasi yang berhasil. Jika terjadi error, buka halaman pemecahan masalah untuk mendapatkan panduan guna menyelesaikan error umum.

Mendapatkan dukungan

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