Pelajari cara menyambungkan aplikasi ASP.NET Core yang berjalan di Azure App Service, ke Azure App Configuration, menggunakan salah satu metode berikut:
- Identitas terkelola yang ditetapkan sistem (SMI)
- Identitas terkelola yang ditetapkan pengguna (UMI)
- Principal layanan
- Rangkaian koneksi
Dalam tutorial ini, gunakan Azure CLI untuk menyelesaikan tugas berikut:
- Menyiapkan sumber daya Azure
- Membuat koneksi antara aplikasi web dan App Configuration
- Membangun dan menyebarkan aplikasi Anda ke Azure App Service
Prerequisites
Masuk ke Azure
Jalankan az login di Azure CLI untuk masuk ke Azure.
Menyiapkan sumber daya Azure
Mulailah dengan membuat sumber daya Azure Anda.
Kloning repositori sampel berikut:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Sebarkan aplikasi web ke Azure.
Ikuti langkah-langkah ini untuk membuat App Service dan menyebarkan aplikasi sampel. Pastikan Anda memiliki peran Kontributor atau Pemilik langganan.
Buat layanan aplikasi dan sebarkan aplikasi sampel yang menggunakan identitas terkelola yang ditetapkan sistem untuk berinteraksi dengan App Config.
# Change directory to the SMI sample
cd serviceconnector-webapp-appconfig-dotnet\system-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-smi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
| Parameter |
Description |
Example |
| Location |
Pilih lokasi di dekat Anda. Gunakan az account list-locations --output table untuk mencantumkan lokasi. |
eastus |
| Nama grup sumber daya |
Gunakan grup sumber daya ini untuk mengatur semua sumber daya Azure yang diperlukan untuk menyelesaikan tutorial ini. |
service-connector-tutorial-rg |
| Nama layanan aplikasi |
Nama layanan aplikasi digunakan sebagai nama sumber daya di Azure dan untuk membentuk nama domain yang sepenuhnya memenuhi syarat untuk aplikasi Anda, dalam bentuk titik akhir server. Karakter yang diperbolehkan adalah: A-Z, 0-9, dan -. Azure menambahkan string acak untuk membuat titik akhir server unik di semua Azure. |
webapp-appconfig-smi |
Buat layanan aplikasi dan sebarkan aplikasi sampel yang menggunakan identitas terkelola yang ditetapkan pengguna untuk berinteraksi dengan App Config.
# Change directory to the UMI sample
cd serviceconnector-webapp-appconfig-dotnet\user-assigned-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-umi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
| Parameter |
Description |
Example |
| Location |
Pilih lokasi di dekat Anda. Gunakan az account list-locations --output table untuk mencantumkan lokasi. |
eastus |
| Nama grup sumber daya |
Gunakan grup sumber daya ini untuk mengatur semua sumber daya Azure yang diperlukan untuk menyelesaikan tutorial ini. |
service-connector-tutorial-rg |
| Nama layanan aplikasi |
Nama layanan aplikasi digunakan sebagai nama sumber daya di Azure dan untuk membentuk nama domain yang sepenuhnya memenuhi syarat untuk aplikasi Anda, dalam bentuk titik akhir server. Karakter yang diperbolehkan adalah: A-Z, 0-9, dan -. Azure menambahkan string acak untuk membuat titik akhir server unik di semua Azure. |
webapp-appconfig-umi |
Buat identitas terkelola yang ditetapkan pengguna. Simpan output ke notepad sementara.
az identity create --resource-group $RESOURCE_GROUP_NAME --name "myIdentity"
Buat layanan aplikasi dan sebarkan aplikasi sampel yang menggunakan perwakilan layanan untuk berinteraksi dengan App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\service-principal
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-sp'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
| Parameter |
Description |
Example |
| Location |
Pilih lokasi di dekat Anda. Gunakan az account list-locations --output table untuk mencantumkan lokasi. |
eastus |
| Nama grup sumber daya |
Gunakan grup sumber daya ini untuk mengatur semua sumber daya Azure yang diperlukan untuk menyelesaikan tutorial ini. |
service-connector-tutorial-rg |
| Nama layanan aplikasi |
Nama layanan aplikasi digunakan sebagai nama sumber daya di Azure dan untuk membentuk nama domain yang sepenuhnya memenuhi syarat untuk aplikasi Anda, dalam bentuk titik akhir server. Karakter yang diperbolehkan adalah: A-Z, 0-9, dan -. Azure menambahkan string acak untuk membuat titik akhir server unik di semua Azure. |
webapp-appconfig-sp |
Buat prinsipal layanan. Pastikan untuk mengganti yourSubscriptionID dengan ID langganan Anda yang sebenarnya. Simpan output ke notepad sementara.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Warning
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini membutuhkan tingkat kepercayaan yang sangat tinggi pada aplikasi. Ini membawa risiko yang tidak ada dalam alur lain. Anda hanya boleh menggunakan alur ini ketika alur lain yang lebih aman, seperti identitas terkelola, tidak layak.
Buat layanan aplikasi dan sebarkan aplikasi sampel yang menggunakan string koneksi untuk berinteraksi dengan App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\connection-string
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-cs'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
| Parameter |
Description |
Example |
| Location |
Pilih lokasi di dekat Anda. Gunakan az account list-locations --output table untuk mencantumkan lokasi. |
eastus |
| Nama grup sumber daya |
Gunakan grup sumber daya ini untuk mengatur semua sumber daya Azure yang diperlukan untuk menyelesaikan tutorial ini. |
service-connector-tutorial-rg |
| Nama layanan aplikasi |
Nama layanan aplikasi digunakan sebagai nama sumber daya di Azure dan untuk membentuk nama domain yang sepenuhnya memenuhi syarat untuk aplikasi Anda, dalam bentuk titik akhir server. Karakter yang diperbolehkan adalah: A-Z, 0-9, dan -. Azure menambahkan string acak untuk membuat titik akhir server unik di semua Azure. |
webapp-appconfig-cs |
Buat penyimpanan Azure App Configuration.
APP_CONFIG_NAME='my-app-config'
az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
Impor file konfigurasi pengujian ke Azure App Configuration.
Impor file konfigurasi pengujian ke Azure App Configuration menggunakan identitas terkelola yang ditetapkan sistem.
Ubah direktori ke folder ServiceConnectorSample.
Impor file konfigurasi pengujian ./sampleconfigs.json ke penyimpanan App Configuration. Jika Anda menggunakan Cloud Shell, unggah sampleconfigs.json sebelum menjalankan perintah.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Impor file konfigurasi pengujian ke Azure App Configuration menggunakan identitas terkelola yang ditetapkan pengguna.
Ubah direktori ke folder ServiceConnectorSample.
Impor file konfigurasi pengujian ./sampleconfigs.json ke penyimpanan App Configuration. Jika Anda menggunakan Cloud Shell, unggah sampleconfigs.json sebelum menjalankan perintah.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Impor file konfigurasi pengujian ke Azure App Configuration menggunakan prinsipal layanan.
Ubah direktori ke folder ServiceConnectorSample.
Impor file konfigurasi pengujian ./sampleconfigs.json ke penyimpanan App Configuration. Jika Anda menggunakan Cloud Shell, unggah sampleconfigs.json sebelum menjalankan perintah.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini membutuhkan tingkat kepercayaan yang sangat tinggi pada aplikasi. Ini membawa risiko yang tidak ada dalam alur lain. Anda hanya boleh menggunakan alur ini ketika alur lain yang lebih aman, seperti identitas terkelola, tidak layak.
Impor file konfigurasi pengujian ke Azure App Configuration menggunakan string koneksi.
Ubah direktori ke folder ServiceConnectorSample.
Impor file konfigurasi pengujian ./sampleconfigs.json ke penyimpanan App Configuration. Jika Anda menggunakan Cloud Shell, unggah sampleconfigs.json sebelum menjalankan perintah.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Menyambungkan aplikasi web ke App Configuration
Buat hubungan antara aplikasi web Anda dan toko App Configuration Anda.
Buat koneksi antara aplikasi web Anda dan App Configuration store Anda, menggunakan autentikasi identitas terkelola yang ditetapkan oleh sistem. Koneksi ini dilakukan melalui Konektor Layanan.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity
system-identity mengacu pada jenis autentikasi identitas terkelola yang ditetapkan sistem (SMI). Konektor Layanan juga mendukung autentikasi berikut: identitas terkelola (UMI) yang ditetapkan pengguna, string koneksi (rahasia), dan perwakilan layanan.
Buat koneksi antara aplikasi web Anda dan penyimpanan App Configuration, menggunakan autentikasi identitas terkelola yang ditetapkan oleh pengguna. Koneksi ini dilakukan melalui Konektor Layanan.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_umi" --user-identity client-id=<myIdentityClientId> subs-id=<myTestSubsId>
user-identity mengacu pada jenis autentikasi identitas terkelola yang ditetapkan pengguna. Konektor Layanan juga mendukung autentikasi berikut: identitas terkelola yang ditetapkan sistem, string koneksi (rahasia), dan perwakilan layanan.
Ada dua cara untuk menemukan client-id:
- Di Azure CLI, masukkan
az identity show --name "myIdentity" --resource-group $RESOURCE_GROUP_NAME --query 'clientId'.
- Di portal Microsoft Azure, buka Identitas Terkelola yang dibuat sebelumnya dan di Gambaran Umum, dapatkan nilai di bawah ID Klien.
Buat koneksi antara aplikasi web dan penyimpanan App Configuration Anda, menggunakan prinsipal layanan. Konfigurasi ini dilakukan melalui Konektor Layanan.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_sp" --service-principal client-id=<mySPClientId> secret=<mySPSecret>
service-principal mengacu pada jenis autentikasi service principal. Konektor Layanan juga mendukung autentikasi berikut: identitas terkelola yang ditetapkan sistem (UMI), identitas terkelola yang ditetapkan pengguna (UMI), dan string koneksi (rahasia).
Buat koneksi antara aplikasi web Anda dan penyimpanan Konfigurasi Aplikasi Anda, menggunakan string sambungan. Koneksi ini dilakukan melalui Konektor Layanan.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_cs" --secret
secret mengacu pada jenis autentikasi string koneksi. Konektor Layanan juga mendukung autentikasi berikut: identitas terkelola yang ditetapkan sistem, identitas terkelola yang ditetapkan pengguna, dan perwakilan layanan.
Memvalidasi koneksi
Untuk memeriksa apakah koneksi berfungsi, navigasikan ke aplikasi web Anda. Cara term mudah untuk masuk ke aplikasi web Anda adalah dengan membukanya di portal Microsoft Azure. Di halaman Gambaran Umum , pilih domain Default. Setelah situs web berjalan, Anda akan melihat tampilan: Halo. Azure WebApp Anda tersambung ke App Configuration dengan ServiceConnector sekarang.
Cara kerjanya
Cari tahu apa yang dikelola Konektor Layanan di belakang layar untuk setiap jenis autentikasi.
Konektor Layanan mengelola konfigurasi koneksi untuk Anda:
- Siapkan
AZURE_APPCONFIGURATION_ENDPOINT aplikasi web agar aplikasi dapat mengaksesnya dan mendapatkan titik akhir dari Konfigurasi Aplikasi. Akses kode sampel.
- Aktifkan autentikasi terkelola yang ditetapkan sistem aplikasi web dan beri App Configuration peran Pembaca Data untuk memungkinkan aplikasi mengautentikasi ke App Configuration menggunakan DefaultAzureCredential dari Azure.Identity. Akses kode sampel.
Konektor Layanan mengelola konfigurasi koneksi untuk Anda:
- Siapkan
AZURE_APPCONFIGURATION_ENDPOINT dan AZURE_APPCONFIGURATION_CLIENTID aplikasi web agar aplikasi dapat mengaksesnya dan mendapatkan titik akhir konfigurasi aplikasi dalam kode.
- Aktifkan autentikasi terkelola yang ditetapkan pengguna aplikasi web dan beri App Configuration peran Pembaca Data untuk memungkinkan aplikasi mengautentikasi ke App Configuration menggunakan DefaultAzureCredential dari Azure.Identity. Akses kode sampel.
Konektor Layanan mengelola konfigurasi koneksi untuk Anda:
- Siapkan
AZURE_APPCONFIGURATION_ENDPOINT aplikasi web agar aplikasi dapat mengaksesnya dan mendapatkan titik akhir dari Konfigurasi Aplikasi. Akses kode sampel.
- Simpan kredensial prinsipal layanan ke WebApp AppSettings
AZURE_APPCONFIGURATION_CLIENTID.
AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET dan berikan peran Pembaca Data App Configuration kepada perwakilan layanan, sehingga aplikasi dapat diautentikasi ke App Configuration dalam kode dengan menggunakan ClientSecretCredential dari Azure.Identity.
Konektor Layanan mengelola konfigurasi koneksi untuk Anda:
- Siapkan aplikasi
AZURE_APPCONFIGURATION_CONNECTIONSTRING web untuk membiarkan aplikasi mengaksesnya dan mendapatkan string koneksi App Configuration. Akses kode sampel.
- Aktifkan autentikasi terkelola yang ditetapkan sistem aplikasi web dan beri App Configuration peran Pembaca Data untuk memungkinkan aplikasi mengautentikasi ke App Configuration menggunakan DefaultAzureCredential dari Azure.Identity. Akses kode sampel.
Untuk informasi selengkapnya, lihat Pengoperasian Konektor Layanan.
Uji (opsional)
Secara opsional, lakukan pengujian berikut:
Perbarui nilai kunci SampleApplication:Settings:Messages di App Configuration Store.
az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Navigasi ke aplikasi web Azure Anda, seperti yang dijelaskan sebelumnya, dan refresh halaman. Anda melihat bahwa pesan diperbarui ke: halo.
Membersihkan sumber daya
Setelah selesai, jika Anda tidak akan menggunakan sumber daya Azure ini lagi, hapus dengan menjalankan az group delete perintah . Perintah ini menghapus grup sumber daya Anda dan semua sumber daya di dalamnya.
az group delete --name <myResourceGroupName> --yes
Langkah selanjutnya