Aşağıdaki yöntemlerden birini kullanarak Azure App Service üzerinde çalışan bir ASP.NET Core uygulamasını Azure Uygulama Yapılandırması'na bağlamayı öğrenin:
- Sistem tarafından atanan yönetilen kimlik (SMI)
- Kullanıcı tarafından atanan yönetilen kimlik (UMI)
- Servis Principal
- Bağlantı dizesi
Bu öğreticide, aşağıdaki görevleri tamamlamak için Azure CLI'yi kullanın:
- Azure kaynaklarını ayarlama
- Web uygulaması ile Uygulama Yapılandırması arasında bağlantı oluşturma
- Uygulamanızı derleme ve Azure App Service'e dağıtma
Prerequisites
Azure'a Giriş Yap
Azure'da oturum açmak için Azure CLI'da komutunu çalıştırın az login .
Azure kaynaklarını ayarlama
Azure kaynaklarınızı oluşturarak başlayın.
Aşağıdaki örnek depoyu kopyalayın:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Web uygulamasını Azure'a dağıtın.
App Service oluşturmak ve örnek uygulamayı dağıtmak için bu adımları izleyin. Abonelik Katkıda Bulunanı veya Sahip rolüne sahip olduğunuzdan emin olun.
App Config ile etkileşim kurmak için bir uygulama hizmeti oluşturun ve sistem tarafından atanan yönetilen kimliği kullanan örnek uygulamayı dağıtın.
# 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 |
Size yakın bir konum seçin. Konumları listelemek için kullanın az account list-locations --output table . |
eastus |
| Kaynak grubu adı |
Bu öğreticiyi tamamlamak için gereken tüm Azure kaynaklarını düzenlemek için bu kaynak grubunu kullanın. |
service-connector-tutorial-rg |
| Adı App Service |
Uygulama hizmeti adı, Azure'daki kaynağın adı olarak ve uygulamanızın tam etki alanı adını sunucu uç noktası biçiminde oluşturmak için kullanılır. İzin verilen karakterler , A-Zve 0şeklindedir.-9- Azure, sunucu uç noktasını tüm Azure'da benzersiz hale getirmek için rastgele bir dize ekler. |
webapp-appconfig-smi |
App Config ile etkileşim kurmak için bir uygulama hizmeti oluşturun ve kullanıcı tarafından atanan yönetilen kimliği kullanan örnek uygulamayı dağıtın.
# 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 |
Size yakın bir konum seçin. Konumları listelemek için kullanın az account list-locations --output table . |
eastus |
| Kaynak grubu adı |
Bu öğreticiyi tamamlamak için gereken tüm Azure kaynaklarını düzenlemek için bu kaynak grubunu kullanın. |
service-connector-tutorial-rg |
| Adı App Service |
Uygulama hizmeti adı, Azure'daki kaynağın adı olarak ve uygulamanızın tam etki alanı adını sunucu uç noktası biçiminde oluşturmak için kullanılır. İzin verilen karakterler , A-Zve 0şeklindedir.-9- Azure, sunucu uç noktasını tüm Azure'da benzersiz hale getirmek için rastgele bir dize ekler. |
webapp-appconfig-umi |
Kullanıcı tarafından atanmış bir yönetilen kimlik oluşturun. Çıkışı geçici bir not defterine kaydedin.
az identity create --resource-group $RESOURCE_GROUP_NAME --name "myIdentity"
Uygulama servisi oluşturun ve hizmet ilkesi kullanarak Uygulama Yapılandırması ile etkileşim kuran örnek uygulamayı dağıtın.
# 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 |
Size yakın bir konum seçin. Konumları listelemek için kullanın az account list-locations --output table . |
eastus |
| Kaynak grubu adı |
Bu öğreticiyi tamamlamak için gereken tüm Azure kaynaklarını düzenlemek için bu kaynak grubunu kullanın. |
service-connector-tutorial-rg |
| Adı App Service |
Uygulama hizmeti adı, Azure'daki kaynağın adı olarak ve uygulamanızın tam etki alanı adını sunucu uç noktası biçiminde oluşturmak için kullanılır. İzin verilen karakterler , A-Zve 0şeklindedir.-9- Azure, sunucu uç noktasını tüm Azure'da benzersiz hale getirmek için rastgele bir dize ekler. |
webapp-appconfig-sp |
Hizmet sorumlusu oluşturma. Emin olun yourSubscriptionID değerini gerçek abonelik kimliğiniz ile değiştirin. Çıkışı geçici bir not defterine kaydedin.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Warning
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Bu yordamda açıklanan kimlik doğrulama akışı, uygulamada çok yüksek düzeyde güven gerektirir. Diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.
App Config ile etkileşim kurmak için bir uygulama hizmeti oluşturun ve bağlantı dizesi kullanan örnek uygulamayı dağıtın.
# 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 |
Size yakın bir konum seçin. Konumları listelemek için kullanın az account list-locations --output table . |
eastus |
| Kaynak grubu adı |
Bu öğreticiyi tamamlamak için gereken tüm Azure kaynaklarını düzenlemek için bu kaynak grubunu kullanın. |
service-connector-tutorial-rg |
| Adı App Service |
Uygulama hizmeti adı, Azure'daki kaynağın adı olarak ve uygulamanızın tam etki alanı adını sunucu uç noktası biçiminde oluşturmak için kullanılır. İzin verilen karakterler , A-Zve 0şeklindedir.-9- Azure, sunucu uç noktasını tüm Azure'da benzersiz hale getirmek için rastgele bir dize ekler. |
webapp-appconfig-cs |
Azure Uygulama Yapılandırma deposu oluşturun.
APP_CONFIG_NAME='my-app-config'
az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
Test yapılandırma dosyasını Azure Uygulama Yapılandırması'na aktarın.
Sistem tarafından atanan yönetilen kimliği kullanarak test yapılandırma dosyasını Azure Uygulama Yapılandırması'na aktarın.
Dizinleri klasörüne ServiceConnectorSampledeğiştirin.
./sampleconfigs.json test yapılandırma dosyasını Uygulama Yapılandırma deposuna aktarın.
Cloud Shell kullanıyorsanız, komutu çalıştırmadan önce sampleconfigs.json yükleyin.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Kullanıcı tarafından atanan yönetilen kimliği kullanarak test yapılandırma dosyasını Azure Uygulama Yapılandırması'na aktarın.
Dizinleri klasörüne ServiceConnectorSampledeğiştirin.
./sampleconfigs.json test yapılandırma dosyasını Uygulama Yapılandırma deposuna aktarın.
Cloud Shell kullanıyorsanız, komutu çalıştırmadan önce sampleconfigs.json yükleyin.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Hizmet sorumlusunu kullanarak test yapılandırma dosyasını Azure Uygulama Yapılandırması'na aktarın.
Dizinleri klasörüne ServiceConnectorSampledeğiştirin.
./sampleconfigs.json test yapılandırma dosyasını Uygulama Yapılandırma deposuna aktarın.
Cloud Shell kullanıyorsanız, komutu çalıştırmadan önce sampleconfigs.json yükleyin.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Bu yordamda açıklanan kimlik doğrulama akışı, uygulamada çok yüksek düzeyde güven gerektirir. Diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.
Bağlantı dizesini kullanarak test yapılandırma dosyasını Azure Uygulama Yapılandırması'na aktarın.
Dizinleri klasörüne ServiceConnectorSampledeğiştirin.
./sampleconfigs.json test yapılandırma dosyasını Uygulama Yapılandırma deposuna aktarın.
Cloud Shell kullanıyorsanız, komutu çalıştırmadan önce sampleconfigs.json yükleyin.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Web uygulamasını Uygulama Yapılandırması'na bağlama
Web uygulamanızla Uygulama Yapılandırma mağazanız arasında bir bağlantı oluşturun.
Sistem tarafından atanan yönetilen kimlik kimlik doğrulamasını kullanarak web uygulamanızla Uygulama Yapılandırma deponuz arasında bir bağlantı oluşturun. Bu bağlantı Hizmet Bağlayıcısı aracılığıyla yapılır.
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 , sistem tarafından atanan yönetilen kimlik (SMI) kimlik doğrulama türünü ifade eder. Hizmet Bağlayıcısı şu kimlik doğrulamalarını da destekler: kullanıcı tarafından atanan yönetilen kimlik (UMI), bağlantı dizesi (gizli dizi) ve hizmet sorumlusu.
Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulamasını kullanarak web uygulamanızla Uygulama Yapılandırma deponuz arasında bir bağlantı oluşturun. Bu bağlantı Hizmet Bağlayıcısı aracılığıyla yapılır.
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 kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulama türünü ifade eder. Hizmet Bağlayıcısı şu kimlik doğrulamalarını da destekler: sistem tarafından atanan yönetilen kimlik, bağlantı dizesi (gizli dizi) ve hizmet sorumlusu.
Aşağıdakini bulmak için iki client-id yolu vardır:
- Azure CLI'ya girin
az identity show --name "myIdentity" --resource-group $RESOURCE_GROUP_NAME --query 'clientId'.
- Azure portalında, daha önce oluşturulan Yönetilen Kimlik'i açın ve Genel Bakış'taİstemci Kimliği'nin altındaki değeri alın.
Hizmet sorumlusu kullanarak web uygulamanızla Uygulama Yapılandırma deponuz arasında bir bağlantı oluşturun. Bu yapılandırma, Hizmet Bağlayıcısı aracılığıyla yapılır.
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 hizmet sorumlusu kimlik doğrulama türünü ifade eder. Hizmet Bağlayıcısı şu kimlik doğrulamalarını da destekler: sistem tarafından atanan yönetilen kimlik (UMI), kullanıcı tarafından atanan yönetilen kimlik (UMI) ve bağlantı dizesi (gizli dizi).
Bağlantı dizesini kullanarak web uygulamanızla Uygulama Yapılandırma deponuz arasında bir bağlantı oluşturun. Bu bağlantı Hizmet Bağlayıcısı aracılığıyla yapılır.
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 bağlantı dizesi kimlik doğrulama türünü ifade eder. Hizmet Bağlayıcısı şu kimlik doğrulamalarını da destekler: sistem tarafından atanan yönetilen kimlik, kullanıcı tarafından atanan yönetilen kimlik ve hizmet sorumlusu.
Bağlantıyı doğrulama
Bağlantının çalışıp çalışmadiğini denetlemek için web uygulamanıza gidin. Web uygulamanıza erişmenin en kolay yolu, uygulamayı Azure portalında açmaktır.
Genel Bakış sayfasında Varsayılan etki alanını seçin. Web sitesi açılırken şunu görürsünüz: Merhaba. Azure WebApp'iniz artık ServiceConnector tarafından Uygulama Yapılandırması'na bağlandı.
Nasıl çalışır?
Her kimlik doğrulama türü için Service Connector'ın arka planda neleri yönettiğini öğrenin.
Hizmet Bağlayıcısı bağlantı yapılandırmasını sizin için yönetir:
- Web uygulamasını
AZURE_APPCONFIGURATION_ENDPOINT ayarlayın, böylece uygulama ona erişebilir ve Uygulama Yapılandırması uç noktasını alabilirsiniz.
Örnek koda erişin.
- Web uygulamasının sistem tarafından atanan yönetilen kimlik doğrulamasını etkinleştirin ve Uygulamanın Azure.Identity'den DefaultAzureCredential kullanarak Uygulama Yapılandırmasında kimlik doğrulaması yapmasına izin vermek için Uygulama Yapılandırması'na bir Veri Okuyucusu rolü verin.
Örnek koda erişin.
Hizmet Bağlayıcısı bağlantı yapılandırmasını sizin için yönetir:
- Uygulamanın uygulamaya erişmesine izin vermek ve
AZURE_APPCONFIGURATION_ENDPOINT uygulama yapılandırma uç noktasını almak için web uygulamasının AZURE_APPCONFIGURATION_CLIENTIDöğesini ayarlayın;
- Web uygulamasının kullanıcı tarafından atanan yönetilen kimlik doğrulamasını etkinleştirin ve Uygulamanın Azure.Identity'den DefaultAzureCredential kullanarak Uygulama Yapılandırmasında kimlik doğrulaması yapmasına izin vermek için Uygulama Yapılandırması'na bir Veri Okuyucusu rolü verin.
Örnek koda erişin.
Hizmet Bağlayıcısı bağlantı yapılandırmasını sizin için yönetir:
- Web uygulamasını
AZURE_APPCONFIGURATION_ENDPOINT ayarlayın, böylece uygulama ona erişebilir ve Uygulama Yapılandırması uç noktasını alabilirsiniz.
Örnek koda erişin.
- Hizmet sorumlusu kimlik bilgilerini WebApp AppSettings'e
AZURE_APPCONFIGURATION_CLIENTIDkaydedin.
AZURE_APPCONFIGURATION_TENANTIDögesini AZURE_APPCONFIGURATION_CLIENTSECRET seçin ve hizmet sorumlusuna Uygulama Yapılandırması Veri Okuyucusu rolü verin, böylece uygulamanın Azure.Identity'den kullanılarak ClientSecretCredentialkodda Uygulama Yapılandırması'nda kimliği doğrulanabilir.
Hizmet Bağlayıcısı bağlantı yapılandırmasını sizin için yönetir:
- Uygulamanın erişimini sağlamak ve Uygulama Yapılandırması bağlantı dizesini almak için web uygulamasının
AZURE_APPCONFIGURATION_CONNECTIONSTRING ayarlarını yapın.
Örnek koda erişin.
- Web uygulamasının sistem tarafından atanan yönetilen kimlik doğrulamasını etkinleştirin ve Uygulamanın Azure.Identity'den DefaultAzureCredential kullanarak Uygulama Yapılandırmasında kimlik doğrulaması yapmasına izin vermek için Uygulama Yapılandırması'na bir Veri Okuyucusu rolü verin.
Örnek koda erişin.
Daha fazla bilgi için bkz. Service Connector iç işlevleri.
Test (isteğe bağlı)
İsteğe bağlı olarak aşağıdaki testleri yapın:
App Configuration Store'da anahtarın SampleApplication:Settings:Messages değerini güncelleştirin.
az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Daha önce açıklandığı gibi Azure web uygulamanıza gidin ve sayfayı yenileyin. İletinin şu şekilde güncelleştirildiğini görürsünüz: hello.
Kaynakları temizle
İşiniz bittiğinde, bu Azure kaynaklarını artık kullanmayacaksanız komutunu çalıştırarak az group delete silin. Bu komut kaynak grubunuzu ve içindeki tüm kaynakları siler.
az group delete --name <myResourceGroupName> --yes
Sonraki adım