Dokumen ini menjelaskan cara melakukan autentikasi ke Google Cloud menggunakan token melalui Workload Identity Federation. Dengan Workload Identity Federation, Anda dapat memberikan akses workload SAP lokal atau multicloud 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 federasi sebagai gantinya. 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, langkah-langkah konfigurasi tingkat tinggi adalah sebagai berikut:
- Siapkan IdP eksternal.
- Di Google Cloud, konfigurasikan Workload Identity Federation.
- Di Google Cloud, buat akun layanan.
- Di Google Cloud, izinkan beban kerja eksternal meniru identitas akun layanan.
- Di ABAP SDK untuk Google Cloud, terapkan kode ABAP untuk mengambil token keamanan dari IdP Anda.
- Di ABAP SDK untuk Google Cloud, konfigurasikan 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 Penggabungan identitas tenaga kerja: produk dan batasan yang didukung.
Menyiapkan IdP eksternal Anda
Anda harus 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 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 penyedia dan kumpulan workload identity.
Anda akan mengonfigurasi kumpulan identitas, yaitu entity yang memungkinkan Anda mengelola identitas eksternal. Anda juga akan mengonfigurasi penyedia kumpulan identitas workload, yang merupakan entity yang menjelaskan hubungan antara Google Cloud dan IdP Anda.
Untuk mengonfigurasi Workload Identity Federation, lakukan langkah-langkah bergantung pada IdP eksternal Anda:
- Jika Anda menggunakan AWS atau Azure sebagai IdP, ikuti petunjuk untuk membuat penyedia dan kumpulan workload identity.
- Jika Anda menggunakan IdP lain, ikuti petunjuk untuk membuat penyedia dan kumpulan workload identity.
Perhatikan hal-hal berikut:
- Project number: nomor project project Google Cloud tempat Anda membuat kumpulan workload identity.
- ID Kumpulan: ID unik yang mengidentifikasi kumpulan workload identity.
- ID Penyedia: ID yang mengidentifikasi penyedia kumpulan identitas workload.
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 lain yang didukung 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 ke 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 Menemukan peran IAM untuk Google Cloud API.
Mengizinkan workload eksternal untuk meniru identitas akun layanan
Untuk mengizinkan beban kerja eksternal meniru identitas akun layanan, lakukan langkah-langkah 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 beban kerja eksternal meniru identitas akun layanan.
Menerapkan kode ABAP untuk mengambil token keamanan dari IdP
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 dalam namespace yang diturunkan dari class abstrak /GOOG/CL_AUTH_WIF_BASE
.
Untuk memanggil Cloud Functions dari ABAP SDK untuk Google Cloud menggunakan Workload Identity Federation, SDK menyediakan class abstrak /GOOG/CL_AUTH_WIF_ID_TOKEN
lainnya. Jika menyiapkan autentikasi menggunakan Workload Identity Federation, Anda perlu membuat satu class turunan lagi di namespace yang diturunkan dari class abstrak /GOOG/CL_AUTH_WIF_ID_TOKEN
. Anda menentukan class turunan ini di kolom Authorization Class saat mengonfigurasi kunci klien untuk memanggil Cloud Functions.
Pastikan untuk mengimplementasikan
metode GET_EXT_IDP_TOKEN
di class turunan dan menulis logika untuk mendapatkan
token keamanan dari IdP. Isi kolom berikut:
CV_TOKEN
: token yang diambil dari IdP 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 bertukar dan mengambil
token OAuth 2.0 final, 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 GUI SAP, jalankan kode transaksi
/GOOG/SDK_IMG
.Atau, jalankan kode transaksi
SPRO
, lalu klik SAP Reference IMG. - Klik ABAP SDK for Google Cloud > Setelan Dasar > Konfigurasi Kunci Klien.
- Klik New Entries.
Masukkan nilai untuk kolom berikut:
Kolom Deskripsi Nama Kunci Google Cloud Tetapkan nama konfigurasi kunci klien. Nama Akun Layanan Google Cloud Tentukan nama akun layanan, dalam format alamat email, yang dibuat untuk mengakses Google Cloud API pada langkah Membuat akun layanan. Contoh: sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
.Cakupan Google Cloud Kosongkan kolom ini. ID Project Google Cloud Tentukan ID project Google Cloud tempat Anda membuat kumpulan workload identity. Nama perintah Kosongkan kolom ini. Class Otorisasi Tentukan class turunan, yang berisi implementasi class /GOOG/CL_AUTH_WIF_BASE
. Untuk mengetahui informasi selengkapnya, lihat Mengimplementasikan kode ABAP untuk mengambil token keamanan dari IdP.Pembuatan Cache Token Kosongkan kolom ini. detik Refresh Token Kosongkan kolom ini. Parameter Otorisasi 1 Tentukan ID kumpulan workload identity. Parameter Otorisasi 2 Tentukan ID penyedia workload identity. Simpan entri.
Dapatkan 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 Forums.
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.