Dokumen ini menjelaskan cara melakukan autentikasi ke Google Cloud menggunakan token melalui Workload Identity Federation. Dengan Workload Identity Federation, Anda dapat memberikan akses beban kerja SAP lokal atau multi-cloud ke resource Google Cloud tanpa menggunakan kunci akun layanan. Anda dapat menggunakan Workload Identity Federation dengan Amazon Web Services (AWS) atau dengan penyedia identitas (IdP) apa pun yang mendukung OpenID Connect (OIDC), seperti Microsoft Azure atau SAML 2.0.
Workload Identity Federation mengikuti spesifikasi pertukaran token OAuth 2.0. Anda memberikan kredensial dari 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, langkah-langkah konfigurasi tingkat tinggi adalah sebagai berikut:
- Siapkan IdP eksternal Anda.
- Di Google Cloud, konfigurasi Workload Identity Federation.
- Di Google Cloud, buat akun layanan.
- Di Google Cloud, izinkan workload eksternal untuk meniru identitas akun layanan.
- Di ABAP SDK untuk Google Cloud, implementasikan kode ABAP untuk mengambil token keamanan dari IdP Anda.
- Di ABAP SDK untuk Google Cloud, konfigurasi kunci klien.
Tidak semua produk Google Cloud mendukung Workload Identity Federation. Sebelum menyiapkan autentikasi menggunakan Workload Identity Federation, tinjau daftar produk dan batasan yang didukung. Untuk mengetahui informasi selengkapnya, lihat Workforce identity federation: produk dan batasan yang didukung.
Menyiapkan IdP eksternal Anda
Anda perlu menyiapkan IdP agar beban kerja SAP dapat memperoleh kredensial yang dapat ditukar dengan token keamanan Google OAuth 2.0.
Untuk menyiapkan IdP eksternal, lakukan langkah-langkah berikut bergantung pada IdP Anda:
- Jika Anda menggunakan AWS atau Azure sebagai IdP, ikuti petunjuk untuk menyiapkan IdP eksternal.
- Jika Anda menggunakan IdP lain, ikuti petunjuk untuk menyiapkan IdP eksternal.
Mengonfigurasi Workload Identity Federation
Di Google Cloud, konfigurasikan workload identity pool dan penyedia.
Anda mengonfigurasi kumpulan identitas, yang merupakan entity yang memungkinkan Anda mengelola identitas eksternal. Anda juga mengonfigurasi penyedia kumpulan identitas beban kerja, yang merupakan entitas yang menjelaskan hubungan antara Google Cloud dan IdP Anda.
Untuk mengonfigurasi Workload Identity Federation, lakukan langkah-langkah berikut, bergantung pada IdP eksternal Anda:
- Jika Anda menggunakan AWS atau Azure sebagai IdP, ikuti petunjuk untuk membuat kumpulan identitas dan penyedia workload.
- Jika Anda menggunakan IdP lain, ikuti petunjuk untuk membuat workload identity pool dan penyedia.
Perhatikan hal berikut:
- Nomor project: nomor project project Google Cloud tempat Anda membuat workload identity pool.
- ID Pool: ID unik yang mengidentifikasi workload identity pool.
- ID Penyedia: ID yang mengidentifikasi penyedia workload identity pool.
Anda memerlukannya untuk konfigurasi kunci klien ABAP SDK.
Membuat akun layanan
Di konsol Google Cloud, buat akun layanan IAM khusus untuk mengakses Google Cloud API. Akun layanan ini harus merupakan akun utama dalam project Google Cloud yang berisi Google Cloud API yang akan Anda gunakan dengan menggunakan SDK.
Di konsol Google Cloud, aktifkan IAM Service Account Credentials API, Security Token Service API, dan API yang didukung lainnya yang ingin Anda akses menggunakan SDK.
Untuk mengetahui informasi tentang cara mengaktifkan Google Cloud API, lihat Mengaktifkan API.
Buat akun layanan yang merepresentasikan workload.
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.
Mengizinkan workload eksternal untuk meniru identitas akun layanan
Agar workload eksternal dapat meniru identitas akun layanan, lakukan langkah-langkah berikut, bergantung pada IdP eksternal Anda:
- Jika Anda menggunakan AWS atau Azure sebagai IdP, ikuti petunjuk untuk mengizinkan beban kerja eksternal meniru identitas akun layanan.
- Jika Anda menggunakan IdP lain, ikuti petunjuk untuk mengizinkan workload eksternal meniru identitas akun layanan.
Menerapkan kode ABAP untuk mengambil token keamanan dari IdP Anda
ABAP SDK untuk Google Cloud menyediakan class abstrak /GOOG/CL_AUTH_WIF_BASE
,
yang memiliki logika untuk mengambil token keamanan OAuth 2.0 dari
Layanan Token Keamanan dan token akses OAuth 2.0 dari
IAM Service Account Credentials API. Sebagai developer, Anda perlu
membuat class turunan di namespace yang mewarisi
dari class abstrak /GOOG/CL_AUTH_WIF_BASE
.
Untuk memanggil fungsi Cloud Run dari ABAP SDK untuk Google Cloud menggunakan Workload Identity Federation, SDK menyediakan class abstrak lain /GOOG/CL_AUTH_WIF_ID_TOKEN
. Jika menyiapkan autentikasi menggunakan Workload Identity Federation, Anda perlu membuat satu class turunan lagi di namespace yang mewarisi dari class abstrak /GOOG/CL_AUTH_WIF_ID_TOKEN
. Anda menentukan class turunan ini di
kolom Authorization Class saat mengonfigurasi kunci klien untuk memanggil fungsi Cloud Run.
Pastikan untuk menerapkan
metode GET_EXT_IDP_TOKEN
di class turunan dan menulis logika untuk mendapatkan
token keamanan dari IdP Anda. Isi kolom berikut:
CV_TOKEN
: token yang diambil dari IdP Anda dalam formatstring
.CV_TOKEN_TYPE
: jenis token keamanan yang diambil dari IdP Anda. Jenis token yang didukung adalah:urn:ietf:params:oauth:token-type:jwt
urn:ietf:params:oauth:token-type:id_token
urn:ietf:params:aws:token-type:aws4_request
urn:ietf:params:oauth:token-type:access_token
urn:ietf:params:oauth:token-type:saml2
Nilai yang diisi di CV_TOKEN
dan CV_TOKEN_TYPE
kemudian digunakan oleh metode
class abstrak /GOOG/CL_AUTH_WIF_BASE
untuk menukar dan mengambil
token OAuth 2.0 akhir, yang digunakan dalam panggilan API.
Contoh berikut menunjukkan contoh implementasi metode
GET_EXT_IDP_TOKEN
untuk
penyedia Cloud lainnya seperti AWS dan Azure.
AWS
Azure
Mengonfigurasi kunci klien
-
Di SAP GUI, jalankan kode transaksi
/GOOG/SDK_IMG
.Atau, jalankan kode transaksi
SPRO
, lalu klik IMG Referensi SAP. - Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.
- Klik New Entries.
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 mengakses Google Cloud API di langkah Create a service account. Contoh: sap-example-svc-acct@example-project-123456.
.Cakupan Google Cloud Kosongkan kolom ini. ID Project Google Cloud Tentukan ID project Google Cloud tempat Anda membuat workload identity pool. Nama perintah Kosongkan kolom ini. Class Otorisasi Tentukan class turunan, yang berisi implementasi class /GOOG/CL_AUTH_WIF_BASE
. Untuk mengetahui informasi selengkapnya, lihat Menerapkan kode ABAP untuk mengambil token keamanan dari IdP Anda.Penyimpanan Token ke Cache Kosongkan kolom ini. Detik Pembaruan Token Kosongkan kolom ini. Parameter Otorisasi 1 Tentukan ID workload identity pool. Authorization Parameter 2 Tentukan ID penyedia workload identity. Simpan entri.
Mendapatkan dukungan
Jika Anda memerlukan bantuan untuk menyelesaikan masalah terkait ABAP SDK untuk Google Cloud, lakukan hal berikut:
Lihat panduan pemecahan masalah ABAP SDK untuk Google Cloud.
Ajukan pertanyaan dan diskusikan ABAP SDK untuk Google Cloud dengan komunitas di Cloud Forum.
Kumpulkan semua informasi diagnostik yang tersedia dan hubungi Cloud Customer Care. Untuk mengetahui informasi tentang cara menghubungi Customer Care, lihat Mendapatkan dukungan untuk SAP di Google Cloud.