Melakukan autentikasi menggunakan Token Web JSON

Dokumen ini menunjukkan cara menyiapkan autentikasi untuk mengakses Google Cloud API saat sistem SAP Anda berjalan di host yang berada di infrastruktur lokal, di penyedia cloud lain, di lingkungan lain di luar Google Cloud, atau dikelola oleh SAP melalui program SAP RISE. Untuk autentikasi ke Google Cloud, Anda menggunakan Token Web JSON (JWT) yang ditandatangani Google Cloud untuk mendapatkan token akses dari Google Cloud.

Langkah-langkah konfigurasi tingkat tinggi adalah sebagai berikut:

Membuat akun layanan untuk pengambilan token berbasis JWT

Untuk autentikasi berbasis JWT ke Google Cloud, ABAP SDK untuk Google Cloud memerlukan akun layanan IAM.

Membuat akun layanan

Buat akun layanan dan berikan peran IAM Service Account Token Creator ke akun layanan.

Untuk membuat akun layanan, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud, buat akun layanan IAM untuk pengambilan token berbasis JWT.

    Buka halaman Service accounts

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

  2. Berikan peran Service Account Token Creator ke akun layanan. Untuk mengetahui petunjuknya, lihat Memberikan satu peran.

Membuat kunci akun layanan

Anda harus membuat kunci akun layanan P12 untuk akun layanan yang digunakan untuk pengambilan token berbasis JWT.

Untuk membuat kunci akun layanan, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Service accounts IAM & Admin.

    Buka halaman Service accounts

  2. Pilih project Google Cloud Anda.

  3. Klik alamat email akun layanan yang Anda buat untuk pengambilan token berbasis JWT di bagian sebelumnya, Membuat akun layanan.

  4. Di bawah nama akun layanan, klik tab Keys.

  5. Klik menu drop-down Add Key, lalu pilih Create new key untuk membuat kunci akun layanan.

  6. Terima P12 sebagai jenis kunci dan klik Create.

    Kunci pribadi didownload ke komputer Anda.

  7. Catat sandi untuk file kunci pribadi, notasecret.

    Berikan kunci pribadi dan sandi kepada administrator SAP Anda untuk mengimpor kunci pribadi ke STRUST, seperti yang dijelaskan dalam Mengimpor kunci akun layanan ke STRUST.

Menentukan akun layanan untuk penandatanganan JWT

Jika Anda membuat akun layanan untuk penandatanganan JWT dalam project yang berbeda dengan project yang berisi Google Cloud API, Anda harus menentukan akun layanan di sistem host SAP.

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

Untuk menentukan akun layanan untuk penandatanganan JWT, lakukan langkah-langkah berikut:

  1. Di SAP GUI, jalankan kode transaksi /GOOG/SDK_IMG.

    Atau, jalankan kode transaksi SPRO, lalu klik IMG Referensi SAP.

  2. Klik ABAP SDK for Google Cloud > Basic Settings > Configure Parameters.

  3. Klik New Entries.

  4. Di kolom Parameter Name, masukkan JWT_SERVC_ACCT. Deskripsi parameter diisi secara otomatis.

  5. Di kolom Parameter Value, masukkan nama akun layanan.

  6. Simpan entri baru.

Mengonfigurasi setelan keamanan untuk Google Cloud di sistem host SAP

Jika ingin mengaktifkan penandatanganan JWT untuk akun layanan yang dibuat untuk pengambilan token berbasis JWT, Anda harus mengonfigurasi setelan keamanan untuk Google Cloud pada sistem host SAP.

Membuat Aplikasi Secure Store and Forward (SSF) baru

Setiap entri SSFAPPLIC memungkinkan Anda menyimpan satu kunci akun layanan. Untuk menyimpan kunci akun layanan untuk beberapa project, Anda perlu membuat beberapa entri SSFAPPLIC dengan mengikuti langkah-langkah yang sama.

Untuk membuat entri baru di tabel SSFAPPLIC, lakukan langkah-langkah berikut:

  1. Di SAP GUI, masukkan kode transaksi SE16.
  2. Di kolom Table Name, masukkan SSFAPPLIC, dan buat entri baru.
  3. Di kolom APPLIC, masukkan nama untuk aplikasi SSF Anda, seperti ZG_JWT.
  4. Kecuali kolom B_INCCERTS, B_DETACHED, B_ASKPWD, dan B_DISTRIB, pilih semua kolom lainnya.
  5. Di kolom DESCRIPT, masukkan JWT Signature for GCP.
  6. Simpan entri baru.

    Entri ini menjadi node baru dalam transaksi STRUST, tempat Anda mengimpor kunci akun layanan.

Aktifkan node STRUST

Gunakan transaksi SSFA untuk mengaktifkan node STRUST untuk JWT Signature for GCP.

Untuk mengaktifkan node STRUST, lakukan langkah-langkah berikut:

  1. Di SAP GUI, masukkan kode transaksi SSFA.
  2. Klik New Entries.
  3. Di menu drop-down SSF Application, pilih JWT Signature for GCP. Ini adalah entri baru yang Anda buat di tabel SSFAPPLIC.

    Parameter SSF khusus aplikasi diisi secara otomatis.

  4. Simpan entri baru.

    Node baru SSF JWT Signature for GCP diaktifkan dalam transaksi STRUST.

Impor kunci akun layanan ke STRUST

Untuk mengimpor kunci akun layanan ke STRUST, lakukan langkah-langkah berikut:

  1. Di SAP GUI, masukkan kode transaksi STRUST.

    Verifikasi node baru dalam transaksi STRUST adalah SSF JWT Signature for GCP.

  2. Impor file kunci pribadi:

    1. Pilih PSE > Import dari panel menu.
    2. Bergantung pada sistem SAP Anda, pilih kunci pribadi yang sesuai:
      • SAP S/4HANA
        1. Pilih kunci pribadi P12.
        2. Masukkan sandi file notasecret, lalu klik OK.
      • SAP ECC
        1. Pilih kunci pribadi PSE. Anda harus mengonversi kunci pribadi P12 yang telah Anda download sebelumnya menjadi kunci pribadi PSE. Untuk mengetahui informasi selengkapnya tentang cara mengonversi kunci P12 menjadi kunci PSE, lihat Mengonversi kunci P12 menjadi kunci PSE.
        2. Masukkan PIN file yang Anda buat selama konversi kunci pribadi dari kunci P12 ke kunci PSE, lalu klik OK.
  3. Pilih PSE > Save as.

  4. Pilih Aplikasi SSF, dan di kolom input yang sesuai, pilih node Aplikasi SSF baru yang Anda buat di Create a new Secure Store and Forward (SSF) Application.

  5. Simpan entri baru.

    Kunci layanan dilampirkan ke SSF JWT Signature for GCP node aplikasi SSF.

Mengonversi kunci pribadi P12 menjadi kunci PSE

Jika sistem SAP Anda adalah SAP NetWeaver 7.0x (SAP ECC), maka Anda harus mengonversi kunci P12 menjadi kunci PSE.

Untuk mengonversi kunci P12 menjadi kunci PSE, lakukan langkah-langkah berikut:

  1. Buka jalur:

    /usr/sap/SID/SYS/exe/run/

    Ganti SID dengan ID sistem SAP.

  2. Jalankan perintah berikut setelah mengganti placeholder:

    sapgenpse import_p12 -p PSE_PATH_AND_FILE_NAME P12_PATH_AND_FILE_NAME.p12

    Ganti kode berikut:

    • PSE_PATH_AND_FILE_NAME: menentukan jalur dan nama file untuk file PSE
    • P12_PATH_AND_FILE_NAME: menentukan jalur dan nama file untuk file kunci P12
  3. Masukkan sandi file kunci pribadi P12, notasecret.

  4. Buat PIN baru untuk kunci pribadi PSE dan masukkan kembali PIN Anda.

  5. Catat PIN ini, Anda harus memberikan PIN ini saat mengimpor file kunci pribadi PSE ke STRUST.

Untuk mengetahui informasi dari SAP terkait cara mengonversi kunci P12 menjadi kunci PSE, lihat:

Mengaktifkan Google Cloud API

Di Konsol Google Cloud, aktifkan IAM Service Account Credentials API untuk project Google Cloud yang memerlukan autentikasi. Bersama dengan IAM Service Account Credentials API, Anda perlu mengaktifkan API yang didukung lainnya yang ingin diakses menggunakan SDK.

Buka koleksi API

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

Membuat akun layanan untuk otorisasi agar dapat mengakses Google Cloud API

Untuk autentikasi dan otorisasi agar dapat mengakses Google Cloud API, ABAP SDK untuk Google Cloud memerlukan akun layanan IAM.

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. Jika 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.

  1. Di Konsol Google Cloud, buat akun layanan IAM 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.

  2. 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 Menemukan peran IAM untuk Google Cloud API.

  3. 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 dapat menentukan nama project saat menambahkan akun layanan ke project tersebut. Untuk informasi selengkapnya, lihat Menambahkan akun layanan ke project Google Cloud.

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 IAM Permissions:

    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 IAM, klik Grant access. Dialog Berikan akses ke "PROJECT_NAME" akan terbuka.

  4. Di dialog Berikan akses ke "PROJECT_NAME", 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. Terapkan praktik terbaik yang direkomendasikan Google dengan menerapkan 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.

Menyiapkan koneksi HTTPS

Server aplikasi SAP diperlukan untuk terhubung ke Google Cloud API melalui HTTPS.

Di host SAP, pastikan aturan atau proxy firewall dikonfigurasi untuk mengizinkan traffic keluar dari port HTTPS ke Google Cloud API yang diperlukan.

Secara khusus, sistem SAP Anda harus dapat mengakses endpoint API berikut:

  • https://iamcredentials.googleapis.com
  • Endpoint API untuk API yang ingin Anda gunakan dengan SDK.

Membuat konfigurasi SAP

Untuk autentikasi berbasis JWT, buat konfigurasi SAP yang diperlukan.

Menentukan setelan akses di tabel kunci klien

Untuk menentukan setelan akses, lakukan langkah-langkah berikut:

  1. Di SAP GUI, jalankan kode transaksi /GOOG/SDK_IMG.

    Atau, jalankan kode transaksi SPRO, lalu klik IMG Referensi SAP.

  2. Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.

  3. Klik New Entries.

  4. Masukkan nilai untuk kolom berikut:

    Kolom Deskripsi
    Nama Kunci Google Cloud Tentukan nama konfigurasi kunci klien.
    Nama Akun Layanan Google Cloud

    Tentukan nama akun layanan dalam format alamat email yang dibuat untuk ABAP SDK untuk Google Cloud di langkah Create a service account. Contoh: sap-example-svc-acct@example-project-123456.

    Cakupan Google Cloud Tentukan cakupan akses, https://www.googleapis.com/auth/cloud-platform.
    ID Project Tentukan ID project Google Cloud yang berisi API target Anda.
    Nama perintah Kosongkan kolom ini.
    Class Otorisasi Tentukan class otorisasi, /GOOG/CL_AUTH_JWT.
    Kolom Otorisasi Kosongkan kolom ini.
    Detik Pembaruan Token Kosongkan kolom ini.
    Parameter Otorisasi 1 Tentukan nama aplikasi SSF yang Anda buat di bagian Membuat Aplikasi Secure Store and Forward (SSF) baru.
  5. Simpan entri baru.

Membuat tujuan RFC baru

Buat tujuan RFC untuk IAM API dan API lain yang ingin Anda gunakan dengan ABAP SDK untuk Google Cloud, misalnya, Pub/Sub API v1.

Nama tujuan RFC Catatan
ZGOOG_IAMCREDENTIALS Tujuan RFC ini menargetkan IAM API .
ZGOOG_OAUTH2_TOKEN Tujuan RFC ini menargetkan endpoint Google Cloud untuk autentikasi berbasis token.
ZGOOG_PUBSUB_V1 Tujuan RFC ini menargetkan Pub/Sub API.

Untuk informasi tentang cara membuat tujuan RFC, lihat Tujuan RFC.

Menentukan tujuan RFC dalam tabel pemetaan layanan

Dalam tabel pemetaan layanan, tentukan tujuan RFC untuk IAM API dan API lain yang ingin Anda gunakan menggunakan ABAP SDK untuk Google Cloud.

Untuk menentukan tujuan RFC, lakukan langkah-langkah berikut:

  1. Di SAP GUI, jalankan kode transaksi /GOOG/SDK_IMG.

    Atau, jalankan kode transaksi SPRO, lalu klik IMG Referensi SAP.

  2. Klik ABAP SDK for Google Cloud > Basic Settings > Configure Service Mapping.

  3. Klik New Entries.

  4. Tentukan tujuan RFC untuk IAM API dan API lainnya. Contoh:

    Nama Nama Layanan RFC Destination
    Nama Kunci Google Cloud iamcredentials:v1 ZGOOG_IAMCREDENTIALS
    Nama Kunci Google Cloud googleapis.com/oauth2 ZGOOG_OAUTH2_TOKEN
    Nama Kunci Google Cloud pubsub.googleapis.com ZGOOG_PUBSUB_V1
  5. Simpan entri baru.

Memvalidasi konfigurasi autentikasi

Untuk memvalidasi konfigurasi autentikasi, lakukan langkah-langkah berikut:

  1. Di SAP GUI, jalankan kode transaksi /GOOG/SDK_IMG.

    Atau, jalankan kode transaksi SPRO, lalu klik IMG Referensi SAP.

  2. Klik ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration.

  3. Masukkan nama kunci klien.

  4. Klik Execute untuk memeriksa apakah keseluruhan alur berhasil dikonfigurasi.

    Centang hijau di kolom Status menunjukkan bahwa semua langkah konfigurasi berhasil diselesaikan.

Mendapatkan dukungan

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