Informazioni su come collegare un'app ASP.NET Core in esecuzione su Azure App Service a Configurazione app di Azure, usando uno dei metodi seguenti:
- Identità gestita assegnata dal sistema (SMI)
- Identità gestita assegnata dall'utente (UMI)
- Service Principal
- stringa di connessione
In questa esercitazione verrà usata l'interfaccia della riga di comando di Azure per completare le attività seguenti:
- Configurare le risorse di Azure
- Creare una connessione tra un'app Web e Configurazione app
- Compilare e distribuire l'app in Servizio app di Azure
Prerequisites
Accedere ad Azure
Eseguire az login nell'interfaccia della riga di comando di Azure per accedere ad Azure.
Configurare le risorse di Azure
Per iniziare, creare le risorse Azure.
Clonare il seguente repository di esempio:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Distribuire l'app Web in Azure.
Seguire i passaggi seguenti per creare un Servizio app e distribuire l'app di esempio. Assicurati di avere il ruolo di contributor o owner dell'abbonamento.
Creare un Servizio app e distribuire l'app di esempio che usa un'identità gestita assegnata al sistema per interagire con Configurazione app.
# 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 |
Scegliere una località nelle vicinanze. Usare il comando az account list-locations --output table per elencare le posizioni. |
eastus |
| Nome del gruppo di risorse |
Usare questo gruppo di risorse per organizzare tutte le risorse di Azure necessarie per completare questa esercitazione. |
service-connector-tutorial-rg |
| Nome del servizio app |
Il nome del servizio app viene utilizzato come nome della risorsa in Azure e per formare il nome di dominio completo per la vostra app, nella forma dell'endpoint del server. I caratteri consentiti sono A-Z, 0-9 e -. Azure aggiunge una stringa casuale per rendere univoco l'endpoint server in tutti gli Azure. |
webapp-appconfig-smi |
Creare un Servizio app e distribuire l'app di esempio che usa un'identità gestita assegnata dall'utente per interagire con Configurazione app.
# 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 |
Scegliere una località nelle vicinanze. Usare il comando az account list-locations --output table per elencare le posizioni. |
eastus |
| Nome del gruppo di risorse |
Usare questo gruppo di risorse per organizzare tutte le risorse di Azure necessarie per completare questa esercitazione. |
service-connector-tutorial-rg |
| Nome del servizio app |
Il nome del servizio app viene utilizzato come nome della risorsa in Azure e per formare il nome di dominio completo per la vostra app, nella forma dell'endpoint del server. I caratteri consentiti sono A-Z, 0-9 e -. Azure aggiunge una stringa casuale per rendere univoco l'endpoint server in tutti gli Azure. |
webapp-appconfig-umi |
Creare un'identità gestita assegnata dall'utente. Salvare l'output in un blocco note temporaneo.
az identity create --resource-group $RESOURCE_GROUP_NAME --name "myIdentity"
Creare un Servizio app e distribuire l'app di esempio che usa un'entità servizio per interagire con Configurazione app.
# 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 |
Scegliere una località nelle vicinanze. Usare il comando az account list-locations --output table per elencare le posizioni. |
eastus |
| Nome del gruppo di risorse |
Usare questo gruppo di risorse per organizzare tutte le risorse di Azure necessarie per completare questa esercitazione. |
service-connector-tutorial-rg |
| Nome del servizio app |
Il nome del servizio app viene utilizzato come nome della risorsa in Azure e per formare il nome di dominio completo per la vostra app, nella forma dell'endpoint del server. I caratteri consentiti sono A-Z, 0-9 e -. Azure aggiunge una stringa casuale per rendere univoco l'endpoint server in tutti gli Azure. |
webapp-appconfig-sp |
Creare un'entità servizio. Assicurati di sostituire il yourSubscriptionID con il tuo ID di sottoscrizione effettivo. Salvare l'output in un blocco note temporaneo.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Warning
Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura richiede un livello di attendibilità molto elevato nell'applicazione. Comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando altri flussi più sicuri, come le identità gestite, non sono validi.
Creare un Servizio app e distribuire l'app di esempio che usa una stringa di connessione per interagire con Configurazione app.
# 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 |
Scegliere una località nelle vicinanze. Usare il comando az account list-locations --output table per elencare le posizioni. |
eastus |
| Nome del gruppo di risorse |
Usare questo gruppo di risorse per organizzare tutte le risorse di Azure necessarie per completare questa esercitazione. |
service-connector-tutorial-rg |
| Nome del servizio app |
Il nome del servizio app viene utilizzato come nome della risorsa in Azure e per formare il nome di dominio completo per la vostra app, nella forma dell'endpoint del server. I caratteri consentiti sono A-Z, 0-9 e -. Azure aggiunge una stringa casuale per rendere univoco l'endpoint server in tutti gli Azure. |
webapp-appconfig-cs |
Creare un archivio di Configurazione app di Azure.
APP_CONFIG_NAME='my-app-config'
az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
Importare il file di configurazione di test in Configurazione app di Azure.
Importare il file di configurazione di test in Configurazione app di Azure usando un'identità gestita assegnata al sistema.
Cambia directory alla cartella ServiceConnectorSample.
Importate il file di configurazione di test ./sampleconfigs.json nell'archivio di configurazione dell'applicazione. Se si usa Cloud Shell, caricare sampleconfigs.json prima di eseguire il comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importare il file di configurazione di test in Configurazione app di Azure usando un'identità gestita assegnata dall'utente.
Cambia directory alla cartella ServiceConnectorSample.
Importare il file di configurazione di test ./sampleconfigs.json nell'archivio di Configurazione app. Se si usa Cloud Shell, caricare sampleconfigs.json prima di eseguire il comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importare il file di configurazione di test in Configurazione app di Azure usando l'entità servizio.
Cambia directory alla cartella ServiceConnectorSample.
Importare il file di configurazione di test ./sampleconfigs.json nello store di Configurazione dell'app. Se si usa Cloud Shell, caricare sampleconfigs.json prima di eseguire il comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura richiede un livello di attendibilità molto elevato nell'applicazione. Comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando altri flussi più sicuri, come le identità gestite, non sono validi.
Importare il file di configurazione di test in Configurazione app di Azure usando una stringa di connessione.
Cambia directory alla cartella ServiceConnectorSample.
Importare il file di configurazione di test ./sampleconfigs.json nell'archivio di App Configuration. Se si usa Cloud Shell, caricare sampleconfigs.json prima di eseguire il comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Collegare l'app Web a Configurazione app
Creare una connessione tra l'applicazione Web e l'archivio Configurazione app.
Creare una connessione tra l'applicazione Web e l'archivio Configurazione app, usando l'autenticazione tramite identità gestita assegnata al sistema. Questa connessione viene effettuata tramite Connettore di servizi.
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 si riferisce al tipo di autenticazione tramite identità gestita assegnata al sistema (SMI). Service Connector supporta anche le autenticazioni seguenti: identità gestita assegnata dall'utente (UMI), stringa di connessione (segreto) e entità servizio.
Creare una connessione tra l'applicazione Web e l'archivio Configurazione app, utilizzando l'autenticazione tramite identità gestita assegnata dall'utente. Questa connessione viene effettuata tramite Connettore di servizi.
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 si riferisce al tipo di autenticazione tramite identità gestita assegnata dall'utente. Service Connector supporta anche le autenticazioni seguenti: identità gestita assegnata dal sistema, stringa di connessione (segreto) e entità servizio.
Ci sono due modi per trovare client-id:
- Nell'interfaccia della riga di comando di Azure, immettere
az identity show --name "myIdentity" --resource-group $RESOURCE_GROUP_NAME --query 'clientId'.
- Nel portale di Azure aprire l'identità gestita creata in precedenza e in Panoramica ottenere il valore in ID client.
Creare una connessione tra l'applicazione Web e l'archivio Configurazione app usando un'entità servizio. Questa configurazione viene eseguita tramite 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 si riferisce al tipo di autenticazione tramite entità servizio. Service Connector supporta anche le autenticazioni seguenti: identità gestita assegnata dal sistema (UMI), identità gestita assegnata dall'utente (UMI) e stringa di connessione (segreto).
Creare una connessione tra l'applicazione Web e l'archivio Configurazione app utilizzando una stringa di connessione. Questa connessione viene effettuata tramite Connettore di servizi.
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 si riferisce al tipo di autenticazione tramite stringa di connessione. Connettore di servizi supporta anche le autenticazioni seguenti: identità gestita assegnata al sistema, identità gestita assegnata dall'utente e entità servizio.
Convalidare la connessione
Per verificare se la connessione funziona, passare all'app Web. Il modo più semplice per accedere all'app Web consiste nell'aprirlo nel portale di Azure. Nella pagina Panoramica selezionare il dominio predefinito. Dopo che il sito web è attivo, vedrai visualizzato: Hello. L'App Web di Azure è ora connessa alla Configurazione dell'app tramite ServiceConnector.
Funzionamento
Scopri cosa gestisce Service Connector in background per ogni tipo di autenticazione.
Connettore di servizi gestisce la configurazione della connessione:
- Impostare
AZURE_APPCONFIGURATION_ENDPOINT dell'app Web per consentire all'applicazione di accedervi e ottenere l'endpoint di Configurazione app. Accedere al codice di esempio.
- Attivare l'autenticazione gestita assegnata al sistema per l'app Web e concedere a Configurazione app il ruolo di Lettore dati per consentire all'applicazione di autenticarsi a Configurazione app usando DefaultAzureCredential di Azure.Identity. Accedere al codice di esempio.
Connettore di servizi gestisce la configurazione della connessione:
- Configurare l'app Web per consentire all'applicazione
AZURE_APPCONFIGURATION_ENDPOINTAZURE_APPCONFIGURATION_CLIENTID di accedervi e ottenere l'endpoint di configurazione dell'app nel codice;
- Attivare l'autenticazione gestita assegnata dall'utente per l'app Web e concedere a Configurazione app il ruolo di Lettore dati per consentire all'applicazione di autenticarsi a Configurazione app usando DefaultAzureCredential di Azure.Identity. Accedere al codice di esempio.
Connettore di servizi gestisce la configurazione della connessione:
- Impostare
AZURE_APPCONFIGURATION_ENDPOINT dell'app Web per consentire all'applicazione di accedervi e ottenere l'endpoint di Configurazione app. Accedere al codice di esempio.
- Salvare le credenziali dell'entità servizio nelle Impostazioni dell'app Web
AZURE_APPCONFIGURATION_CLIENTID.
AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET e concedere il ruolo Lettore dati di configurazione app all'entità servizio, in modo che l'applicazione possa essere autenticata in Configurazione app nel codice, usando ClientSecretCredential di Azure.Identity.
Connettore di servizi gestisce la configurazione della connessione:
- Impostare
AZURE_APPCONFIGURATION_CONNECTIONSTRING dell'app Web per consentire all'applicazione di accedervi e ottenere la stringa di connessione di Configurazione app. Accedere al codice di esempio.
- Attivare l'autenticazione gestita assegnata al sistema per l'app Web e concedere a Configurazione app il ruolo di Lettore dati per consentire all'applicazione di autenticarsi a Configurazione app usando DefaultAzureCredential di Azure.Identity. Accedere al codice di esempio.
Per altre informazioni, vedere Elementi interni di Service Connector.
Test (facoltativo)
Facoltativamente, eseguire i test seguenti:
Aggiornare il valore della chiave SampleApplication:Settings:Messages nell'archivio di Configurazione app.
az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Passare all'app Web di Azure, come descritto in precedenza e aggiornare la pagina. Si noterà che il messaggio viene aggiornato a: hello.
Pulire le risorse
Al termine, se non si useranno più queste risorse di Azure, eliminarle eseguendo il az group delete comando . Questo comando elimina il gruppo di risorse e tutte le risorse in esso contenute.
az group delete --name <myResourceGroupName> --yes
Passo successivo