Esercitazione: collegare un'app Web a Configurazione app di Azure usando Connettore di servizi
Articolo
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)
Entità servizio
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
Prerequisiti
Un account Azure con una sottoscrizione attiva. Il ruolo di accesso all'interno della sottoscrizione deve essere "Collaboratore" o "Proprietario". Creare un account gratuitamente.
Seguire i passaggi seguenti per creare un Servizio app e distribuire l'app di esempio. Assicurarsi di disporre del ruolo di Collaboratore o Proprietario della sottoscrizione.
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
Parametro
Descrizione
Esempio
Ufficio
Selezionare una località nelle vicinanze. Usare il comando az account list-locations --output table per elencare le posizioni.
Stati Uniti orientali
Nome del gruppo di risorse
Usare questo gruppo di risorse per organizzare tutte le risorse 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 l'app, nella forma dell'endpoint del server https://<app-service-name>.azurewebsites.com. Questo nome deve essere univoco in tutto Azure e i caratteri consentiti sono solo A-Z, 0-9 e -.
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
Parametro
Descrizione
Esempio
Ufficio
Selezionare una località nelle vicinanze. Usare il comando az account list-locations --output table per elencare le posizioni.
Stati Uniti orientali
Nome del gruppo di risorse
Usare questo gruppo di risorse per organizzare tutte le risorse 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 l'app, nella forma dell'endpoint del server https://<app-service-name>.azurewebsites.com. Questo nome deve essere univoco in tutto Azure e i caratteri consentiti sono solo A-Z, 0-9 e -.
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 -n "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
Parametro
Descrizione
Esempio
Ufficio
Selezionare una località nelle vicinanze. Usare il comando az account list-locations --output table per elencare le posizioni.
Stati Uniti orientali
Nome del gruppo di risorse
Usare questo gruppo di risorse per organizzare tutte le risorse 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 l'app, nella forma dell'endpoint del server https://<app-service-name>.azurewebsites.com. Questo nome deve essere univoco in tutto Azure e i caratteri consentiti sono solo A-Z, 0-9 e -.
webapp-appconfig-sp
Creare un'entità servizio, assicurandosi di sostituire yourSubscriptionID con l'ID della sottoscrizione effettiva. 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
Avviso
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 e 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
Parametro
Descrizione
Esempio
Ufficio
Selezionare una località nelle vicinanze. Usare il comando az account list-locations --output table per elencare le posizioni.
Stati Uniti orientali
Nome del gruppo di risorse
Usare questo gruppo di risorse per organizzare tutte le risorse 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 l'app, nella forma dell'endpoint del server https://<app-service-name>.azurewebsites.com. Questo nome deve essere univoco in tutto Azure e i caratteri consentiti sono solo A-Z, 0-9 e -.
Importare il file di configurazione di test in Configurazione app di Azure usando un'identità gestita assegnata al sistema.
Eseguire il comando cd nella cartella ServiceConnectorSample
Importare il file di configurazione di test ./sampleconfigs.json nell'archivio Configurazione app. Se si utilizza Cloud Shell, caricare sampleconfigs.json prima di eseguire il comando.
Importare il file di configurazione di test in Configurazione app di Azure usando un'identità gestita assegnata dall'utente.
Eseguire il comando cd nella cartella ServiceConnectorSample
Importare il file di configurazione di test ./sampleconfigs.json nell'archivio Configurazione app. Se si utilizza Cloud Shell, caricare sampleconfigs.json prima di eseguire il comando.
Importare il file di configurazione di test in Configurazione app di Azure usando l'entità servizio.
Eseguire il comando cd nella cartella ServiceConnectorSample
Importare il file di configurazione di test ./sampleconfigs.json nell'archivio Configurazione app. Se si utilizza Cloud Shell, caricare sampleconfigs.json prima di eseguire il comando.
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 e 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.
Eseguire il comando cd nella cartella ServiceConnectorSample
Importare il file di configurazione di test ./sampleconfigs.json nell'archivio Configurazione app. Se si utilizza Cloud Shell, caricare sampleconfigs.json prima di eseguire il comando.
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.
system-identity si riferisce al tipo di autenticazione tramite identità gestita assegnata al sistema (SMI). Connettore di servizi supporta anche le seguenti autenticazioni: identità gestita assegnata dall'utente (UMI), stringa di connessione (chiave segreta) ed 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.
user-identity si riferisce al tipo di autenticazione tramite identità gestita assegnata dall'utente. Connettore di servizi supporta anche le seguenti autenticazioni: identità gestita assegnata al sistema, stringa di connessione (chiave segreta) ed entità servizio.
Ci sono due modi per trovare client-id:
Nell'interfaccia della riga di comando di Azure, immettere az identity show -n "myIdentity" -g $RESOURCE_GROUP_NAME --query 'clientId'.
Nel portale di Azure, aprire l'Identità Gestita creata in precedenza e in Panoramica, ottenere il valore sotto ID Client.
Creare una connessione tra l'applicazione Web e l'archivio Configurazione app usando un'entità servizio. Questa operazione viene effettuata tramite Connettore di servizi.
service-principal si riferisce al tipo di autenticazione tramite entità servizio. Connettore di servizi supporta anche le autenticazioni seguenti: identità gestita assegnata al sistema, stringa di connessione (chiave segreta) ed entità servizio.
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.
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 è funzionante, passare all'app Web su https://<myWebAppName>.azurewebsites.net/ dal browser. Una volta che il sito web è attivo, verrà visualizzato il messaggio "Salve. L'app Web di Azure è ora connessa a Configurazione app tramite ServiceConnector".
Funzionamento
Di seguito sono riportati i dettagli su come Connettore servizi gestisce ciascun 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 AZURE_APPCONFIGURATION_ENDPOINT e AZURE_APPCONFIGURATION_CLIENTID dell'app Web per consentire all'applicazione di accedervi e ottenere l'endpoint di Configurazione 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 di Lettore dati a Configurazione app per l'entità servizio, in modo che l'applicazione possa essere autenticata a 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.
Aggiornare il valore della chiave SampleApplication:Settings:Messages nell'archivio di Configurazione app.
az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Accedere all'app Web di Azure passando a https://<myWebAppName>.azurewebsites.net/ e aggiornare la pagina. Si vedrà che il messaggio viene aggiornato a "Salve".
Pulire le risorse
Al termine dell'operazione, se non si intende usare più queste risorse di Azure, eliminarle eseguendo il comando az group delete. Questo comando elimina il gruppo di risorse e tutte le risorse al suo interno.
az group delete -n <myResourceGroupName> --yes
Passaggi successivi
Per altre informazioni sul connettore di servizi seguire le esercitazioni riportate di seguito.