Lär dig hur du ansluter en ASP.NET Core-app som körs i Azure App Service till Azure App Configuration med någon av följande metoder:
- Systemtilldelad hanterad identitet (SMI)
- Användartilldelad hanterad identitet (UMI)
- Service Principal
- Anslutningssträng
I den här självstudien använder du Azure CLI för att utföra följande uppgifter:
- Konfigurera Azure-resurser
- Skapa en anslutning mellan en webbapp och appkonfiguration
- Skapa och distribuera din app till Azure App Service
Prerequisites
Logga in på Azure
Kör az login i Azure CLI för att logga in på Azure.
Konfigurera Azure-resurser
Börja med att skapa dina Azure-resurser.
Klona följande exempeldatabas:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Distribuera webbappen till Azure.
Följ de här stegen för att skapa en App Service och distribuera exempelappen. Kontrollera att du har rollen deltagare eller ägare för prenumerationen.
Skapa en apptjänst och distribuera exempelappen som använder systemtilldelad hanterad identitet för att interagera med 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 |
Välj en plats nära dig. Använd az account list-locations --output table för att lista platser. |
eastus |
| Namn på resursgrupp |
Använd den här resursgruppen för att organisera alla Azure-resurser som behövs för att slutföra den här självstudien. |
service-connector-tutorial-rg |
| Apptjänstnamn |
Apptjänstnamnet används som namnet på resursen i Azure och för att bilda det fullständigt kvalificerade domännamnet för din app, i form av serverslutpunkten. Tillåtna tecken är A-Z,0-9 och .- Azure lägger till en slumpmässig sträng för att göra serverslutpunkten unik i hela Azure. |
webapp-appconfig-smi |
Skapa en apptjänst och distribuera exempelappen som använder användartilldelad hanterad identitet för att interagera med 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 |
Välj en plats nära dig. Använd az account list-locations --output table för att lista platser. |
eastus |
| Namn på resursgrupp |
Använd den här resursgruppen för att organisera alla Azure-resurser som behövs för att slutföra den här självstudien. |
service-connector-tutorial-rg |
| Apptjänstnamn |
Apptjänstnamnet används som namnet på resursen i Azure och för att bilda det fullständigt kvalificerade domännamnet för din app, i form av serverslutpunkten. Tillåtna tecken är A-Z,0-9 och .- Azure lägger till en slumpmässig sträng för att göra serverslutpunkten unik i hela Azure. |
webapp-appconfig-umi |
Skapa en användartilldelad hanterad identitet. Spara utdata i ett tillfälligt anteckningsblock.
az identity create --resource-group $RESOURCE_GROUP_NAME --name "myIdentity"
Skapa en apptjänst och distribuera exempelappen som använder tjänstens huvudnamn för att interagera med 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 |
Välj en plats nära dig. Använd az account list-locations --output table för att lista platser. |
eastus |
| Namn på resursgrupp |
Använd den här resursgruppen för att organisera alla Azure-resurser som behövs för att slutföra den här självstudien. |
service-connector-tutorial-rg |
| Apptjänstnamn |
Apptjänstnamnet används som namnet på resursen i Azure och för att bilda det fullständigt kvalificerade domännamnet för din app, i form av serverslutpunkten. Tillåtna tecken är A-Z,0-9 och .- Azure lägger till en slumpmässig sträng för att göra serverslutpunkten unik i hela Azure. |
webapp-appconfig-sp |
Skapa ett huvudnamn för tjänsten. Ersätt med ditt faktiska prenumerations-ID yourSubscriptionID . Spara utdata i ett tillfälligt anteckningsblock.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Warning
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren kräver en mycket hög grad av förtroende för programmet. Det medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.
Skapa en apptjänst och distribuera exempelappen som använder anslutningssträngen för att interagera med 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 |
Välj en plats nära dig. Använd az account list-locations --output table för att lista platser. |
eastus |
| Namn på resursgrupp |
Använd den här resursgruppen för att organisera alla Azure-resurser som behövs för att slutföra den här självstudien. |
service-connector-tutorial-rg |
| Apptjänstnamn |
Apptjänstnamnet används som namnet på resursen i Azure och för att bilda det fullständigt kvalificerade domännamnet för din app, i form av serverslutpunkten. Tillåtna tecken är A-Z,0-9 och .- Azure lägger till en slumpmässig sträng för att göra serverslutpunkten unik i hela Azure. |
webapp-appconfig-cs |
Skapa ett Azure App Configuration Store.
APP_CONFIG_NAME='my-app-config'
az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
Importera testkonfigurationsfilen till Azure App Configuration.
Importera testkonfigurationsfilen till Azure App Configuration med hjälp av en systemtilldelad hanterad identitet.
Ändra kataloger till mappen ServiceConnectorSample.
Importera konfigurationsfilen ./sampleconfigs.json test till App Configuration Store. Om du använder Cloud Shell laddar du upp sampleconfigs.json innan du kör kommandot.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importera testkonfigurationsfilen till Azure App Configuration med hjälp av en användartilldelad hanterad identitet.
Ändra kataloger till mappen ServiceConnectorSample.
Importera konfigurationsfilen ./sampleconfigs.json test till App Configuration Store. Om du använder Cloud Shell laddar du upp sampleconfigs.json innan du kör kommandot.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importera testkonfigurationsfilen till Azure App Configuration med tjänstens huvudnamn.
Ändra kataloger till mappen ServiceConnectorSample.
Importera konfigurationsfilen ./sampleconfigs.json test till App Configuration Store. Om du använder Cloud Shell laddar du upp sampleconfigs.json innan du kör kommandot.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren kräver en mycket hög grad av förtroende för programmet. Det medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.
Importera testkonfigurationsfilen till Azure App Configuration med hjälp av en anslutningssträng.
Ändra kataloger till mappen ServiceConnectorSample.
Importera konfigurationsfilen ./sampleconfigs.json test till App Configuration Store. Om du använder Cloud Shell laddar du upp sampleconfigs.json innan du kör kommandot.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Ansluta webbappen till App Configuration
Skapa en anslutning mellan din webbapplikation och din appkonfigurationsbutik.
Skapa en anslutning mellan webbprogrammet och appkonfigurationsarkivet med hjälp av en systemtilldelad hanterad identitetsautentisering. Den här anslutningen görs via Service Connector.
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 refererar till den systemtilldelade autentiseringstypen för hanterad identitet (SMI). Service Connector stöder också följande autentiseringar: användartilldelad hanterad identitet (UMI), anslutningssträng (hemlighet) och tjänstens huvudnamn.
Skapa en anslutning mellan din webbapplikation och ditt appkonfigurationslager med autentisering med användartilldelad hanterad identitet. Den här anslutningen görs via Service Connector.
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 refererar till den användartilldelade autentiseringstypen för hanterad identitet. Service Connector stöder även följande autentiseringar: systemtilldelad hanterad identitet, anslutningssträng (hemlighet) och tjänstens huvudnamn.
Det finns två sätt att client-idhitta :
- I Azure CLI:n anger du
az identity show --name "myIdentity" --resource-group $RESOURCE_GROUP_NAME --query 'clientId'.
- Öppna den hanterade identitet som skapades tidigare i Azure-portalen och hämta värdet under Klient-ID i Översikt.
Skapa en anslutning mellan din webbapplikation och din App Configuration-butik med hjälp av en tjänstens huvudprincip. Den här konfigurationen görs via Service Connector.
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 refererar till autentiseringstypen för tjänstens huvudnamn. Service Connector stöder också följande autentiseringar: systemtilldelad hanterad identitet (UMI), användartilldelad hanterad identitet (UMI) och anslutningssträng (hemlighet).
Skapa en anslutning mellan webbappen och appkonfigurationsarkivet med hjälp av en anslutningssträng. Den här anslutningen görs via Service Connector.
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 refererar till anslutningssträngens autentiseringstyp. Service Connector stöder även följande autentiseringar: systemtilldelad hanterad identitet, användartilldelad hanterad identitet och tjänstens huvudnamn.
Verifiera anslutningen
Om du vill kontrollera om anslutningen fungerar går du till webbappen. Det enklaste sättet att komma åt webbappen är att öppna den i Azure-portalen. På sidan Översikt väljer du standarddomänen. När webbplatsen är igång visas den: Hello. Azure WebApp är ansluten till App Configuration by ServiceConnector nu.
Så här fungerar det
Ta reda på vad Service Connector hanterar i bakgrunden för varje autentiseringstyp.
Service Connector hanterar anslutningskonfigurationen åt dig:
- Konfigurera webbappens
AZURE_APPCONFIGURATION_ENDPOINT för att låta programmet komma åt den och hämta appkonfigurationsslutpunkten. Få åtkomst till exempelkod.
- Aktivera webbappens systemtilldelade hanterade autentisering och ge App Configuration en dataläsarroll så att programmet kan autentiseras till appkonfigurationen med hjälp av DefaultAzureCredential från Azure.Identity. Få åtkomst till exempelkod.
Service Connector hanterar anslutningskonfigurationen åt dig:
- Konfigurera webbappens
AZURE_APPCONFIGURATION_ENDPOINT, AZURE_APPCONFIGURATION_CLIENTID så att programmet får åtkomst till den och få appkonfigurationens slutpunkt i kod.
- Aktivera webbappens användartilldelade hanterade autentisering och ge App Configuration en dataläsarroll så att programmet kan autentiseras till appkonfigurationen med hjälp av DefaultAzureCredential från Azure.Identity. Få åtkomst till exempelkod.
Service Connector hanterar anslutningskonfigurationen åt dig:
- Konfigurera webbappens
AZURE_APPCONFIGURATION_ENDPOINT för att låta programmet komma åt den och hämta appkonfigurationsslutpunkten. Få åtkomst till exempelkod.
- Spara autentiseringsuppgifter för tjänstens huvudnamn i WebApp AppSettings
AZURE_APPCONFIGURATION_CLIENTID.
AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET och bevilja rollen App Configuration Data Reader till service principal, så att applikationen kan autentiseras mot App Configuration i kod med hjälp av ClientSecretCredential från Azure.Identity.
Service Connector hanterar anslutningskonfigurationen åt dig:
- Konfigurera webbappen
AZURE_APPCONFIGURATION_CONNECTIONSTRING för att låta applikationen få åtkomst till den och hämta anslutningssträngen för appkonfiguration. Få åtkomst till exempelkod.
- Aktivera webbappens systemtilldelade hanterade autentisering och ge App Configuration en dataläsarroll så att programmet kan autentiseras till appkonfigurationen med hjälp av DefaultAzureCredential från Azure.Identity. Få åtkomst till exempelkod.
Mer information finns i Interna serviceanslutningar.
Test (valfritt)
Du kan också göra följande tester:
Uppdatera värdet för nyckeln SampleApplication:Settings:Messages i App Configuration Store.
az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Gå till din Azure-webbapp enligt beskrivningen tidigare och uppdatera sidan. Du ser att meddelandet har uppdaterats till: hello.
Rensa resurser
När du är klar tar du bort dem genom att köra az group delete kommandot om du inte längre ska använda dessa Azure-resurser. Det här kommandot tar bort resursgruppen och alla resurser i den.
az group delete --name <myResourceGroupName> --yes
Nästa steg