Domain Kustom Agentspace, Dukungan WIF

1. Pengantar

Dokumen ini memberikan arsitektur referensi untuk mengonfigurasi domain kustom guna mengakses AgentSpace menggunakan WIF. Pengguna dapat menggunakan domain kustom, bukan URL yang dikelola Google yang ditetapkan selama pembuatan aplikasi Agentspace. Codelab ini menunjukkan akses ke aplikasi kalender dan drive Agentspace menggunakan domain nip.io. nip.io adalah layanan open source gratis yang menyediakan DNS karakter pengganti untuk alamat IP apa pun. Pada dasarnya, fitur ini memungkinkan Anda membuat nama host yang di-resolve ke alamat IP tertentu tanpa perlu menyiapkan server DNS sendiri atau mengubah file /etc/hosts.

Sebaiknya gunakan domain Anda sendiri, tetapi untuk tujuan demonstrasi, nip.io digunakan dalam tutorial ini.

Dalam skenario deployment yang digambarkan di bawah (Gambar 1), AgentSpace memublikasikan datastore yang berisi Aplikasi Kalender yang diakses melalui URL publik yang dikelola Google.

Gambar 1

27591afa06891dcb.png

Pertumbuhan berkelanjutan datastore dan aplikasi berikutnya menghasilkan pengelolaan lebih lanjut URL yang dikelola Google Publik seperti yang digambarkan dalam skenario deployment di bawah, (Gambar 2) yang menghasilkan pemetaan 1:1 aplikasi dan URL Agentspace.

Gambar 2.

c03abe66bd3ad4df.png

Domain kustom memungkinkan pemetaan berbagai aplikasi AgentSpace ke satu domain pelanggan yang ditentukan pengguna. Fitur ini memungkinkan jalur URL tertentu dikaitkan dengan setiap aplikasi Agentspace, sehingga menawarkan fleksibilitas yang lebih besar seperti yang digambarkan dalam skenario deployment di bawah, (Gambar 3). Sebagai contoh, ruang agen domain yang dikelola pelanggan agentspace.cosmopup.com disegmentasikan ke dalam aturan jalur, yang masing-masing dipetakan ke aplikasi Agentspace tertentu, contohnya meliputi:

  • agentspace.cosmopup.com/drive-app yang dipetakan ke aplikasi Agentspace untuk Drive Workspace
  • agentspace.cosmopup.com/sharepoint-app yang dipetakan ke aplikasi Agentspace untuk Sharepoint

Aturan host dan jalur Load Balancer Aplikasi Eksternal,yang dikonfigurasi melalui PETA URL, mengontrol logika yang memetakan domain kustom ke URL yang dikelola Google. Aplikasi ini menjalankan fungsi berikut menggunakan example.agentspace.cosmopup.com/drive-app

  • Jalur host domain kustom agentspace.cosmopup.com/drive-app diterima oleh load balancer
  • Peta URL dikonfigurasi untuk pencocokan aturan host dan jalur lanjutan
  • Host agentspace.cosmopup.com memenuhi syarat untuk pencocokan jalur dan pengalihan
  • Jalur host domain kustom agentspace.cosmopup.com/drive-app tunduk pada UrlRedirect
  • pathRedirect adalah jalur Agentspace: /us/home/cid/5970a1b4-080a-4b44-8acd-fa89460cf0cd
  • hostRedirect adalah host Agentspace: vertexaisearch.cloud.google.com
  • Jalur host domain kustom agentspace.cosmopup.com/sharepoint-app tunduk pada UrlRedirect
  • pathRedirect adalah jalur Agentspace: /signin/locations/global/workforcePools/your-pool-name/providers/your-provider-name?continueUrl=https://vertexaisearch.cloud.google/home/cid/f190000-0000-4d0a-0000-d08df6e3bef6
  • hostRedirect adalah host Agentspace: auth.cloud.google
  • Operasi pengalihan dilakukan sebelum merutekan ke layanan backend

Gambar 3

8344f80c160f30f8.png

Yang akan Anda pelajari

  • Membuat Load Balancer Aplikasi Eksternal Global
  • Membuat perutean untuk mengalihkan domain kustom ke aplikasi Agentspace
  • Cara mengintegrasikan nip.io dan Cloud DNS untuk membuat domain kustom
  • Cara memvalidasi akses ke domain kustom Agentspace

Yang Anda butuhkan

  • Project Google Cloud dengan izin Pemilik
  • URL aplikasi Agentspace yang ada
  • Domain Kustom milik sendiri (opsional)
  • Sertifikat - Ditandatangani Sendiri atau Dikelola Google

2. Yang akan Anda build

Anda akan membuat Load Balancer Aplikasi Eksternal Global dengan kemampuan pengelolaan traffic lanjutan untuk mengaktifkan pencocokan jalur domain kustom untuk aplikasi Agentspace menggunakan pengalihan host dan jalur. Setelah di-deploy, Anda akan melakukan tindakan berikut untuk memvalidasi akses ke aplikasi Agentspace:

  • Akses aplikasi Agentspace Anda dengan membuka browser web dan membuka domain kustom serta jalur yang ditentukan.

786e8b2de2d2c68b.png

3. Persyaratan jaringan

Berikut adalah perincian persyaratan jaringan:

Komponen

Deskripsi

VPC (agentspace-vpc)

VPC mode kustom

NEG Internet

Resource yang digunakan untuk menentukan backend eksternal untuk load balancer yang dikonfigurasi sebagai FQDN yang menunjukkan FQDN yang Dikelola Google Agentspace (vertexaisearch.cloud.google.com). FQDN internet melakukan pencarian DNS dalam VPC untuk resolusi.

Layanan Backend

Layanan backend bertindak sebagai jembatan antara load balancer dan resource backend Anda. Dalam tutorial ini, layanan backend dikaitkan dengan NEG Internet.

Sertifikat

Untuk mengonfigurasi sertifikat bagi Load Balancer Aplikasi di Google Cloud, Anda akan menggunakan layanan Pengelola Sertifikat dan sertifikat SSL yang dikelola Google atau sertifikat SSL yang dikelola sendiri

Cloud DNS

Zona publik Cloud DNS digunakan untuk menyelesaikan IP eksternal load balancer aplikasi eksternal ke nip.io (agentspace.externalip.nip.io). Atau, gunakan domain kustom dan data A yang terdiri dari Alamat IP load balancer.

4. Topologi codelab

786e8b2de2d2c68b.png

8344f80c160f30f8.png

5. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:

55efc1aaa7a4d3ad.png

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

7ffe5cbb04455448.png

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.

6. Sebelum memulai

Mengaktifkan API

Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Aktifkan semua layanan yang diperlukan:

gcloud services enable compute.googleapis.com
gcloud services enable dns.googleapis.com

7. Menyiapkan Komponen Load Balancer

Mencadangkan alamat IP eksternal load balancer

Di dalam Cloud Shell, cadangkan alamat IP eksternal untuk load balancer:

gcloud compute addresses create external-ip \
    --network-tier=PREMIUM \
    --ip-version=IPV4 \
    --global

Di dalam Cloud Shell, lihat Alamat IP yang dicadangkan:

gcloud compute addresses describe external-ip \
  --global | grep -i address:

Contoh output:

user@cloudshell$ gcloud compute addresses describe external-ip \
  --global | grep -i address:
address: 34.54.158.206

Menyiapkan NEG Internet

Buat NEG Internet, dan tetapkan –network-endpoint-type ke internet-fqdn-port (nama host dan port tempat backend eksternal Anda dapat dijangkau). Untuk menyelesaikan Agentspace, FQDN vertexaisearch.cloud.google.com dan PORT 443 digunakan.

gcloud compute network-endpoint-groups create agentspace-ineg \
    --network-endpoint-type="internet-fqdn-port" \
    --global
gcloud compute network-endpoint-groups update agentspace-ineg \
    --add-endpoint="fqdn=vertexaisearch.cloud.google.com,port=443" \
    --global

Buat Load Balancer

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute backend-services create agentspace-ineg-bes \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --protocol=HTTPS \
      --global
gcloud compute backend-services add-backend agentspace-ineg-bes \
      --network-endpoint-group=agentspace-ineg \
      --global-network-endpoint-group \
      --global  

Buat Sertifikat

Pada tahap ini, Anda telah membuat NEG internet dan layanan backend. Di bagian berikutnya, Anda perlu membuat resource sertifikat untuk digunakan di proxy target HTTPs. Anda dapat membuat resource sertifikat SSL menggunakan sertifikat SSL yang dikelola Google atau sertifikat SSL yang dikelola sendiri. Sebaiknya gunakan sertifikat yang dikelola Google karena Google Cloud memperoleh, mengelola, dan memperpanjang sertifikat ini secara otomatis.

Untuk mengetahui lebih lanjut sertifikat yang didukung untuk Load Balancer Aplikasi eksternal Global yang digunakan dalam tutorial ini, lihat artikel berikut:

Ringkasan sertifikat SSL | Load Balancing | Google Cloud

Di bagian berikut, Anda akan membuat sertifikat yang ditandatangani sendiri (meskipun sertifikat yang dikelola Google dapat digunakan sebagai gantinya) yang memerlukan pemetaan nama umum ke nama domain yang sepenuhnya memenuhi syarat (agentspace.YOUR-EXTERNAL-IP.nip.io) sesuai dengan alamat IP eksternal load balancer yang dibuat sebelumnya, contoh di bawah:

Nama Umum: agentspace.34.54.158.206.nip.io

Di dalam Cloud Shell, buat kunci pribadi

openssl genrsa -out private-key-file.pem 2048

Di dalam Cloud Shell, buat file config.txt yang digunakan untuk membuat file pem. Tentukan nama domain yang sepenuhnya memenuhi syarat di entri DNS 1 agentspace.YOUR-EXTERNAL-IP.nip.io, misalnya agentspace.34.54.158.206.nip.io dalam konfigurasi di bawah.

cat <<'EOF' >config.txt
[req]
default_bits              = 2048
req_extensions            = extension_requirements
distinguished_name        = dn_requirements

[extension_requirements]
basicConstraints          = CA:FALSE
keyUsage                  = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName            = @sans_list

[dn_requirements]
countryName               = Country Name (2 letter code)
stateOrProvinceName       = State or Province Name (full name)
localityName              = Locality Name (eg, city)
organizationName          = Organization Name (eg, company)
organizationalUnitName    = Organizational Unit Name (eg, section)
commonName                = Common Name (e.g. server FQDN or YOUR name)
emailAddress              = Email Address

[sans_list]
DNS.1                     = agentspace.YOUR-EXTERNAL-IP.nip.io

EOF

Di dalam Cloud Shell, validasi bahwa config.txt dan private-key-file.pem telah dibuat.

user@cloudshell:$ ls
config.txt  private-key-file.pem

Di dalam Cloud Shell, lakukan hal berikut.

sudo openssl req -new -key private-key-file.pem \
    -out csr.pem \
    -config config.txt

Contoh:

user@cloudshell:$ sudo openssl req -new -key private-key-file.pem \
    -out csr.pem \
    -config config.txt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name)[]:agentspace.34.54.158.206.nip.io
Email Address []:

Di dalam Cloud Shell, validasi pembuatan file pem yang diperlukan untuk penandatanganan sertifikat.

user@cloudshell:$ ls
config.txt  csr.pem  private-key-file.pem

Di dalam Cloud Shell, buat sertifikat.

sudo openssl x509 -req \
    -signkey private-key-file.pem \
    -in csr.pem \
    -out cert.cert \
    -extfile config.txt \
    -extensions extension_requirements \
    -days 365

Contoh Output:

user@cloudshell:$ sudo openssl x509 -req \
    -signkey private-key-file.pem \
    -in csr.pem \
    -out cert.cert \
    -extfile config.txt \
    -extensions extension_requirements \
    -days 365
Certificate request self-signature ok
subject=CN = agentspace.34.54.158.206.nip.io

Di dalam Cloud Shell, validasi pembuatan file, cert.cert

user@cloudshell:$ ls
cert.cert  config.txt  csr.pem  private-key-file.pem

Buat resource sertifikat untuk dikaitkan dengan load balancer eksternal Anda. Ganti parameter sertifikat dan kunci pribadi dengan nama file spesifik Anda.

Di Cloud Shell, lakukan hal berikut:

gcloud compute ssl-certificates create agentspace-self-signed-cert \
    --certificate=cert.cert \
    --private-key=private-key-file.pem \
    --global

Di Cloud Shell, lakukan hal berikut:

gcloud compute url-maps create agentspace-lb \
      --default-service=agentspace-ineg-bes \
      --global  

Di Cloud Shell, lakukan hal berikut:

gcloud compute target-https-proxies create https-proxy \
      --ssl-certificates=agentspace-self-signed-cert \
      --url-map=agentspace-lb \
      --global 

Di Cloud Shell, lakukan hal berikut:

gcloud compute forwarding-rules create agentspace-fr \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --network-tier=PREMIUM \
      --address=external-ip \
      --target-https-proxy=https-proxy \
      --global \
      --ports=443

8. Buat Zona DNS Publik

Di bagian berikut, Anda akan membuat Zona DNS Publik yang digunakan oleh nip.io untuk di-resolve terhadap Alamat IP load balancer eksternal.

Di Cloud Shell, lakukan langkah-langkah berikut untuk membuat variabel bagi alamat IP load balancer eksternal Anda:

externalip=<YOUR-EXTERNAL-IP>
echo $externalip

Di Cloud Shell, lakukan hal berikut:

gcloud dns --project=$project managed-zones create agentspace-dns --description="Agentspace public dns" --dns-name="$externalip.nip.io." --visibility="public"

Di Cloud Shell, lakukan hal berikut:

gcloud dns --project=$project record-sets create agentspace.$externalip.nip.io. --zone="agentspace-dns" --type="A" --ttl="300" --rrdatas="$externalip"

9. Mengidentifikasi URL aplikasi Agentspace

Prosedur berikut mengidentifikasi URL Publik Agentspace yang dikelola Google dan dibuat oleh Google yang dipetakan ke setiap aplikasi Agentspace. Output URL adalah contoh berdasarkan arsitektur referensi, jadi Anda harus memastikan URL Anda akurat.

Pastikan untuk menyimpan link ke aplikasi web Anda, per aplikasi.

Aplikasi Drive

URL Web Agentspace:

https://vertexaisearch.cloud.google.com/us/home/cid/5970a1b4-080a-4b44-8acd-fa89460cf0cd

f8f850425fd11190.png

Aplikasi Sharepoint

URL Web Agentspace: https://auth.cloud.google/signin/locations/global/workforcePools/your-pool-name/providers/your-provider-name?continueUrl=https://vertexaisearch.cloud.google/home/cid/f190000-0000-4d0a-0000-d08df6e3bef6

f31a1939b9b83525.png

10. Membuat aturan host dan jalur Lanjutan

Di bagian berikut, Anda akan memperbarui aturan perutean load balancer untuk mengaktifkan opsi guna menentukan aturan host dan jalur menggunakan konsol cloud. Tabel di bawah menguraikan nilai kustom (dalam urutan atas ke bawah), yang diperbarui berdasarkan lingkungan Anda:

Nilai Kustom

Contoh Berdasarkan Tutorial

Host

agentspace.YOUR-EXTERNAL-IP.nip.io

agentspace.34.54.158.206.nip.io

defaultService

projects/<projectid>/global/backendServices/agentspace-ineg-bes

projects/your-project-id/global/backendServices/agentspace-ineg-bes

prefixMatch

/<name of Agentspace app#1>

/drive-app

pathRedirect

/<Agentspace URL path of app#1>

/us/home/cid/5970a1b4-080a-4b44-8acd-fa89460cf0cd

hostRedirect

vertexaisearch.cloud.google.com

vertexaisearch.cloud.google.com

prefixMatch

/<name of Agentspace app#2>

/sharepoint-app

pathRedirect

/<Jalur URL Agentspace aplikasi#2>

//signin/locations/global/workforcePools/your-pool-name/providers/your-provider-name?continueUrl=https://vertexaisearch.cloud.google/home/cid/f190000-0000-4d0a-0000-d08df6e3bef6

hostRedirect

auth.cloud.google

vertexaisearch.cloud.google.com

Buka bagian berikut untuk mengakses aturan host dan jalur

Load balancing → agentspace-lb → Pilih edit

Pilih Aturan perutean → Aturan host dan jalur lanjutan

Pilih Tambahkan aturan host dan jalur

4bc965db43aed21b.png

Sekarang Anda akan diminta untuk membuat aturan host dan jalur baru. Di bagian host, masukkan agentspace.YOUR-EXTERNAL-IP.nip.io atau domain kustom.

f36e4fa11c950d8d.png

Di kolom Pencocok jalur (kecocokan, tindakan, dan layanan), perbarui konten di bawah dengan konfigurasi lingkungan Anda, lalu pilih perbarui.

defaultService: projects/<projectid>/global/backendServices/agentspace-ineg-bes
name: matcher1
routeRules:
- matchRules:
  - prefixMatch: /<name of Agentspace app#1>
  priority: 1
  urlRedirect:
    pathRedirect: /<Agentspace URL path of app#1>
    hostRedirect: vertexaisearch.cloud.google.com
    redirectResponseCode: FOUND
- matchRules:
  - prefixMatch: /<name of Agentspace app#2>
  priority: 2
  urlRedirect:
    pathRedirect: /<Agentspace URL path of app#2>
    hostRedirect: auth.cloud.google
    redirectResponseCode: FOUND

Contoh Screenshot:

5470a123dca793b9.png

777dcb5191fd8d41.png

11. Validasi

Deployment selesai. Anda dapat mengakses aplikasi Agentspace menggunakan domain kustom melalui browser web atau terminal dengan menentukan agentspace.YOUR-EXTERNAL-IP.nip.io/path, misalnya agentspace.34.54.158.206.nip.io, contohnya di bawah:

Aplikasi Agentspace: drive-app

Jalur: agentspace.34.54.158.206.nip.io/drive-app

Aplikasi Agentspace: sharepoint-app

Jalur: agentspace.34.54.158.206.nip.io/sharepoint-app

12. Pembersihan

Untuk menghapus Kredensial OAuth, lakukan hal berikut:

Buka APIS & Services → Credentials

Di bagian OAuth 2.0 Client IDs, pilih kredensial Anda, lalu hapus

Dari satu terminal Cloud Shell, hapus komponen lab:

gcloud compute forwarding-rules delete agentspace-fr --global -q

gcloud compute target-https-proxies delete https-proxy --global -q

gcloud compute url-maps delete agentspace-lb --global -q

cloud compute ssl-certificates delete agentspace-self-signed-cert --global -q

gcloud compute backend-services delete agentspace-ineg-bes --global -q

gcloud compute network-endpoint-groups delete agentspace-ineg --global -q

gcloud dns --project=$projectid record-sets delete agentspace.$externalip.nip.io --zone="agentspace-dns" --type="A"

gcloud dns --project=$projectid managed-zones delete agentspace-dns

gcloud compute addresses delete external-ip --global -q

gcloud compute networks delete agentspace-vpc -q

13. Selamat

Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi konektivitas ke Agentspace menggunakan domain kustom dengan Load Balancer Aplikasi Eksternal dengan pengelolaan traffic lanjutan.

Anda telah membuat infrastruktur load balancer, mempelajari cara membuat NEG Internet, Cloud DNS, dan pengelolaan traffic lanjutan yang memungkinkan pengalihan host dan jalur yang memungkinkan konektivitas ke Agentspace menggunakan domain kustom.

Cosmopup menganggap codelab itu luar biasa!!

c911c127bffdee57.jpeg

Dokumen referensi