Mulai cepat: Mengonfigurasi akses menyeluruh untuk aplikasi menggunakan paket Azure Spring Apps Enterprise

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk:❌ Basic/Standard ✔️ Enterprise

Mulai cepat ini menunjukkan kepada Anda cara mengonfigurasi akses menyeluruh untuk aplikasi yang berjalan pada paket Azure Spring Apps Enterprise.

Prasyarat

Menyiapkan kredensial akses menyeluruh

Untuk mengonfigurasi akses menyeluruh untuk aplikasi, Anda perlu menyiapkan kredensial. Bagian berikut menjelaskan langkah-langkah untuk menggunakan penyedia yang sudah ada atau memprovisikan pendaftaran aplikasi dengan ID Microsoft Entra.

Menggunakan penyedia yang sudah ada

Ikuti langkah-langkah ini untuk mengonfigurasi akses menyeluruh menggunakan Penyedia Identitas yang ada. Jika Anda menyediakan Pendaftaran Aplikasi Microsoft Entra, lewati ke bagian berikut, Buat dan konfigurasikan pendaftaran aplikasi dengan ID Microsoft Entra.

  1. Konfigurasikan idP Anda yang ada untuk memungkinkan pengalihan kembali ke Spring Cloud Gateway untuk VMware Tanzu dan portal API untuk VMware Tanzu. Spring Cloud Gateway memiliki satu URI untuk memungkinkan masuk kembali ke gateway. Portal API memiliki dua URI untuk mendukung antarmuka pengguna dan API yang mendasar. Perintah berikut mengambil URI ini yang Anda tambahkan ke konfigurasi penyedia akses menyeluruh Anda.

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    export PORTAL_URL=$(az spring api-portal show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    echo "https://${GATEWAY_URL}/login/oauth2/code/sso"
    echo "https://${PORTAL_URL}/oauth2-redirect.html"
    echo "https://${PORTAL_URL}/login/oauth2/code/sso"
    
  2. Client ID Dapatkan dan Client Secret untuk IdP Anda.

  3. Issuer URI Dapatkan untuk idP Anda. Anda harus mengonfigurasi penyedia dengan URI penerbit, yang merupakan URI yang dinyatakannya sebagai Pengenal Pengeluar Sertifikatnya. Misalnya, jika issuer-uri yang disediakan adalah https://example.com, maka Permintaan Konfigurasi Penyedia OpenID dibuat ke https://example.com/.well-known/openid-configuration. Hasilnya diharapkan menjadi Respons Konfigurasi Penyedia OpenID.

    Catatan

    Anda hanya dapat menggunakan server otorisasi yang mendukung protokol OpenID Koneksi Discovery.

  4. JWK URI Dapatkan untuk penyedia identitas Anda untuk digunakan nanti. biasanya JWK URI mengambil formulir ${ISSUER_URI}/keys atau ${ISSUER_URI}/<version>/keys. Aplikasi Identity Service menggunakan JSON Web Keys (JWK) publik untuk memverifikasi JSON Web Tokens (JWT) yang dikeluarkan oleh server otorisasi penyedia identitas akses menyeluruh Anda.

Membuat dan mengonfigurasi pendaftaran aplikasi dengan ID Microsoft Entra

Untuk mendaftarkan aplikasi dengan ID Microsoft Entra, ikuti langkah-langkah ini. Jika Anda menggunakan kredensial penyedia yang ada, lewati ke bagian berikut, Sebarkan aplikasi Layanan Identitas.

  1. Gunakan perintah berikut untuk membuat pendaftaran aplikasi dengan MICROSOFT Entra ID dan simpan output:

    az ad app create --display-name <app-registration-name> > ad.json
    
  2. Gunakan perintah berikut untuk mengambil ID aplikasi dan mengumpulkan rahasia klien:

    export APPLICATION_ID=$(cat ad.json | jq -r '.appId')
    az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
    
  3. Gunakan perintah berikut untuk menetapkan Perwakilan Layanan ke pendaftaran aplikasi:

    az ad sp create --id ${APPLICATION_ID}
    
  4. Gunakan perintah berikut untuk mengambil URL untuk Gateway Spring Cloud dan portal API, dan tambahkan URL Balasan yang diperlukan ke Pendaftaran Aplikasi Direktori Aktif.

    export APPLICATION_ID=$(cat ad.json | jq -r '.appId')
    
    export GATEWAY_URL=$(az spring gateway show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    export PORTAL_URL=$(az spring api-portal show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    az ad app update \
        --id ${APPLICATION_ID} \
        --web-redirect-uris "https://${GATEWAY_URL}/login/oauth2/code/sso" "https://${PORTAL_URL}/oauth2-redirect.html" "https://${PORTAL_URL}/login/oauth2/code/sso"
    
  5. Gunakan perintah berikut untuk mengambil aplikasi Client ID. Simpan output untuk digunakan nanti dalam mulai cepat ini.

    cat sso.json | jq -r '.appId'
    
  6. Gunakan perintah berikut untuk mengambil aplikasi Client Secret. Simpan output untuk digunakan nanti dalam mulai cepat ini.

    cat sso.json | jq -r '.password'
    
  7. Gunakan perintah berikut untuk mengambil Issuer URI. Simpan output untuk digunakan nanti dalam mulai cepat ini.

    export TENANT_ID=$(cat sso.json | jq -r '.tenant')
    echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
    
  8. JWK URI Ambil dari output perintah berikut. Aplikasi Identity Service menggunakan JSON Web Keys (JWK) publik untuk memverifikasi JSON Web Tokens (JWT) yang dikeluarkan oleh Active Directory.

    export TENANT_ID=$(cat sso.json | jq -r '.tenant')
    echo "https://login.microsoftonline.com/${TENANT_ID}/discovery/v2.0/keys"
    

Menyebarkan aplikasi Layanan Identitas

Untuk menyelesaikan pengalaman akses menyeluruh, gunakan langkah-langkah berikut untuk menyebarkan aplikasi Layanan Identitas. Aplikasi Layanan Identitas menyediakan satu rute untuk membantu mengidentifikasi pengguna.

  1. Navigasi ke folder proyek.

  2. Gunakan perintah berikut untuk membuat identity-service aplikasi:

    az spring app create \
        --resource-group <resource-group-name> \
        --name identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  3. Gunakan perintah berikut untuk mengaktifkan konfigurasi eksternal untuk layanan identitas dengan mengikat ke Application Configuration Service:

    az spring application-configuration-service bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  4. Gunakan perintah berikut untuk mengaktifkan penemuan layanan dan pendaftaran untuk layanan identitas dengan mengikat ke Service Registry:

    az spring service-registry bind \
        --resource-group <resource-group-name> \
        --app identity-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
  5. Gunakan perintah berikut untuk menyebarkan layanan identitas:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --name identity-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --config-file-pattern identity/default \
        --source-path apps/acme-identity \
        --build-env BP_JVM_VERSION=17 \
        --env "JWK_URI=<jwk-uri>"
    
  6. Gunakan perintah berikut untuk merutekan permintaan ke layanan identitas:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --name identity-routes \
        --service <Azure-Spring-Apps-service-instance-name> \
        --app-name identity-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/identity-service.json
    

Mengonfigurasi akses menyeluruh untuk Spring Cloud Gateway

Anda dapat mengonfigurasi Spring Cloud Gateway untuk mengautentikasi permintaan menggunakan akses menyeluruh. Untuk mengonfigurasi Spring Cloud Gateway untuk menggunakan akses menyeluruh, ikuti langkah-langkah berikut:

  1. Gunakan perintah berikut untuk mengonfigurasi Spring Cloud Gateway untuk menggunakan akses menyeluruh:

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    az spring gateway update \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> \
        --api-description "Fitness Store API" \
        --api-title "Fitness Store" \
        --api-version "v1.0" \
        --server-url "https://${GATEWAY_URL}" \
        --allowed-origins "*" \
        --client-id <client-id> \
        --client-secret <client-secret> \
        --scope "openid,profile" \
        --issuer-uri <issuer-uri>
    
  2. Instruksikan aplikasi layanan keranjang untuk menggunakan Spring Cloud Gateway untuk autentikasi. Gunakan perintah berikut untuk menyediakan variabel lingkungan yang diperlukan:

    az spring app update \
        --resource-group <resource-group-name> \
        --name cart-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --env "AUTH_URL=https://${GATEWAY_URL}" "CART_PORT=8080"
    
  3. Instruksikan aplikasi layanan pesanan untuk menggunakan Spring Cloud Gateway untuk autentikasi. Gunakan perintah berikut untuk menyediakan variabel lingkungan yang diperlukan:

    az spring app update \
        --resource-group <resource-group-name> \
        --name order-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --env "AcmeServiceSettings__AuthUrl=https://${GATEWAY_URL}"
    
  4. Gunakan perintah berikut untuk mengambil URL untuk Spring Cloud Gateway:

    echo "https://${GATEWAY_URL}"
    

    Anda dapat membuka URL output di browser untuk menjelajahi aplikasi yang diperbarui. Fungsi Masuk sekarang beroperasi, memungkinkan Anda menambahkan item ke kelir dan melakukan pemesanan. Setelah Anda masuk, tombol informasi pelanggan menampilkan nama pengguna yang masuk.

Mengonfigurasi akses menyeluruh untuk portal API

Anda dapat mengonfigurasi portal API untuk VMware Tanzu untuk menggunakan akses menyeluruh untuk memerlukan autentikasi sebelum menjelajahi API. Gunakan perintah berikut untuk mengonfigurasi akses menyeluruh untuk portal API:

export PORTAL_URL=$(az spring api-portal show \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')

az spring api-portal update \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --client-id <client-id> \
    --client-secret <client-secret> \
    --scope "openid,profile,email" \
    --issuer-uri <issuer-uri>

Gunakan perintah berikut untuk mengambil URL untuk portal API:

export PORTAL_URL=$(az spring api-portal show \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')

echo "https://${PORTAL_URL}"

Anda bisa membuka URL output di browser untuk menjelajahi API aplikasi. Anda diarahkan untuk masuk sebelum menjelajahi API.


Membersihkan sumber daya

Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, biarkan sumber daya ini tetap di tempatnya. Jika tidak lagi diperlukan, hapus grup sumber daya yang juga akan menghapus sumber daya di grup sumber daya. Untuk menghapus grup sumber daya dengan menggunakan Azure CLI, gunakan perintah berikut:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Langkah berikutnya

Lanjutkan ke salah satu mulai cepat opsional berikut: