Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure App Service dapat menggunakan identitas terkelola untuk tersambung ke layanan ujung belakang tanpa string koneksi, yang menghilangkan rahasia koneksi untuk mengelola dan menjaga konektivitas ujung belakang Anda tetap aman di lingkungan produksi. Untuk layanan ujung belakang yang tidak mendukung identitas terkelola dan masih memerlukan rahasia koneksi, Anda dapat menggunakan Key Vault untuk mengelola rahasia koneksi. Tutorial ini menggunakan layanan Azure AI sebagai contoh untuk menunjukkan kepada Anda bagaimana hal itu dilakukan dalam praktik. Setelah selesai, Anda memiliki aplikasi yang melakukan panggilan terprogram ke layanan Azure AI, tanpa menyimpan rahasia koneksi apa pun di dalam App Service.
Tip
Layanan Azure AI mendukung autentikasi melalui identitas terkelola, tetapi tutorial ini menggunakan autentikasi kunci langganan untuk menunjukkan bagaimana Anda dapat terhubung ke layanan Azure yang tidak mendukung identitas terkelola dari App Services.
Dengan arsitektur ini:
- Konektivitas ke Key Vault diamankan dengan identitas yang dikelola
- App Service mengakses rahasia menggunakan referensi Key Vault sebagai pengaturan aplikasi.
- Akses ke brankas kunci dibatasi untuk aplikasi. Kontributor aplikasi, seperti admin, mungkin memiliki kontrol penuh atas sumber daya App Service, dan pada saat yang sama tidak memiliki akses ke rahasia Key Vault.
- Jika kode aplikasi Anda sudah mengakses rahasia koneksi dengan pengaturan aplikasi, tidak diperlukan perubahan.
Apa yang akan Anda pelajari:
- Mengaktifkan identitas terkelola
- Menggunakan identitas terkelola untuk tersambung ke Key Vault
- Menggunakan referensi Key Vault
- Mengakses layanan Azure AI
Prasyarat
Mempersiapkan lingkungan Anda untuk Azure CLI.
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Membuat aplikasi dengan konektivitas ke layanan Azure AI
Buat grup sumber daya untuk menampung semua sumber daya Anda:
# Save resource group name as variable for convenience groupName=myKVResourceGroup region=westeurope az group create --name $groupName --location $region
Buat sumber daya layanan Azure AI. Ganti <cs-resource-name> dengan nama yang unik pilihan Anda.
# Save resource name as variable for convenience. csResourceName=<cs-resource-name> az cognitiveservices account create --resource-group $groupName --name $csResourceName --location $region --kind TextAnalytics --sku F0 --custom-domain $csResourceName
Catatan
--sku F0
membuat sumber daya layanan Azure AI tingkat gratis. Setiap langganan dibatasi pada kuota satu sumber dayaTextAnalytics
tingkat gratis. Jika Anda sudah melebihi kuota, gunakan--sku S
sebagai gantinya.
Mengonfigurasi aplikasi Python
Mengkloning repositori sampel secara lokal dan menyebarkan aplikasi contoh ke App Service. Ganti <app-name> dengan nama unik.
# Clone and prepare sample application
git clone https://github.com/Azure-Samples/app-service-language-detector.git
cd app-service-language-detector/python
zip -r default.zip .
# Save app name as variable for convenience
appName=<app-name>
az appservice plan create --resource-group $groupName --name $appName --sku FREE --location $region --is-linux
az webapp create --resource-group $groupName --plan $appName --name $appName --runtime "python:3.11"
az webapp config appsettings set --resource-group $groupName --name $appName --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
az webapp deploy --resource-group $groupName --name $appName --src-path ./default.zip
Perintah sebelumnya:
- Membuat paket layanan aplikasi linux
- Membuat aplikasi web untuk Python 3.11
- Mengonfigurasi aplikasi web untuk menginstal paket python pada penyebaran
- Unggah file zip, dan instal paket python
Mengonfigurasi rahasia sebagai pengaturan aplikasi
Konfigurasikan rahasia layanan Azure AI sebagai pengaturan
CS_ACCOUNT_NAME
aplikasi danCS_ACCOUNT_KEY
.# Get subscription key for Cognitive Services resource csKey1=$(az cognitiveservices account keys list --resource-group $groupName --name $csResourceName --query key1 --output tsv) az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="$csResourceName" CS_ACCOUNT_KEY="$csKey1"
Di browser, navigasikan ke aplikasi penyebaran Anda di
<app-name>.azurewebsites.net
dan coba pendeteksi bahasa dengan string dalam berbagai bahasa.Jika melihat kode aplikasi, Anda dapat melihat output debug untuk hasil deteksi dalam warna font yang sama dengan latar belakang. Anda dapat melihat hasil deteksi dengan mencoba menyorot spasi kosong langsung di bawah hasil.
Konektivitas ujung belakang yang aman
Saat ini, rahasia koneksi disimpan sebagai pengaturan aplikasi di aplikasi App Service Anda. Pendekatan ini sudah mengamankan rahasia koneksi dari dasar kode aplikasi Anda. Tetapi, setiap kontributor yang dapat mengelola aplikasi Anda juga dapat melihat pengaturan aplikasi. Pada langkah ini, Anda memindahkan rahasia koneksi ke brankas kunci, dan mengunci akses sehingga hanya Anda yang dapat mengelolanya dan hanya aplikasi App Service yang dapat membacanya menggunakan identitas terkelola.
Membuat brankas kunci. Ganti <vault-name> dengan nama yang unik.
# Save app name as variable for convenience vaultName=<vault-name> az keyvault create --resource-group $groupName --name $vaultName --location $region --sku standard --enable-rbac-authorization
Parameter
--enable-rbac-authorization
mengatur kontrol akses berbasis peran (RBAC) Azure sebagai model izin. Pengaturan ini secara default membatalkan semua izin kebijakan akses.Beri diri Anda peran RBAC Petugas Rahasia Key Vault untuk brankas.
vaultResourceId=$(az keyvault show --name $vaultName --query id --output tsv) myId=$(az ad signed-in-user show --query id --output tsv) az role assignment create --role "Key Vault Secrets Officer" --assignee-object-id $myId --assignee-principal-type User --scope $vaultResourceId
Aktifkan identitas terkelola yang ditetapkan sistem untuk aplikasi Anda, dan berikan peran RBAC Pengguna Rahasia Key Vault untuk brankas.
az webapp identity assign --resource-group $groupName --name $appName --scope $vaultResourceId --role "Key Vault Secrets User"
Tambahkan nama sumber daya layanan Azure AI dan kunci langganan sebagai rahasia ke vault, dan simpan ID mereka sebagai variabel lingkungan untuk langkah berikutnya.
csResourceKVUri=$(az keyvault secret set --vault-name $vaultName --name csresource --value $csResourceName --query id --output tsv) csKeyKVUri=$(az keyvault secret set --vault-name $vaultName --name cskey --value $csKey1 --query id --output tsv)
Sebelumnya, Anda mengatur rahasia sebagai pengaturan aplikasi
CS_ACCOUNT_NAME
danCS_ACCOUNT_KEY
di aplikasi. Sekarang, atur sebagai referensi brankas kunci.az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="@Microsoft.KeyVault(SecretUri=$csResourceKVUri)" CS_ACCOUNT_KEY="@Microsoft.KeyVault(SecretUri=$csKeyKVUri)"
Di browser, navigasikan ke
<app-name>.azurewebsites.net
lagi. Jika Anda mendapatkan hasil deteksi kembali, maka Anda menyambungkan ke titik akhir layanan Azure AI dengan referensi brankas kunci.
Selamat, aplikasi Anda sekarang terhubung ke layanan Azure AI menggunakan rahasia yang disimpan di brankas kunci Anda, tanpa perubahan apa pun pada kode aplikasi Anda.
Membersihkan sumber daya
Di langkah-langkah sebelumnya, Anda membuat sumber daya Azure dalam grup sumber daya. Jika Anda tidak membutuhkan sumber daya ini di masa mendatang, hapus grup sumber daya dengan menjalankan perintah berikut ini di Cloud Shell:
az group delete --name $groupName
Perintah ini mungkin perlu waktu beberapa saat untuk dijalankan.