Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il servizio app di Azure può usare le identità gestite per connettersi ai servizi back-end senza una stringa di connessione. Questo approccio elimina i segreti di connessione per gestire e mantenere sicura la connettività back-end in un ambiente di produzione. Al termine, si dispone di un'app che effettua chiamate programmatiche a Foundry Tools senza archiviare segreti di connessione nel Servizio App.
Per i servizi back-end che non supportano le identità gestite e richiedono ancora segreti di connessione, è possibile usare Azure Key Vault per gestire i segreti di connessione. Questa esercitazione usa gli strumenti Foundry come esempio. Al termine, si avrà un'app che effettua chiamate programmatiche a Foundry Tools senza archiviare segreti di connessione all'interno di App Service.
Suggerimento
Foundry Tools supporta l'autenticazione tramite identità gestite. Questa esercitazione usa l'autenticazione della chiave di sottoscrizione per illustrare come connettersi a un servizio di Azure che non supporta le identità gestite dal servizio app.
In questa architettura:
- Le identità gestite assicurano la connettività all'archivio delle chiavi.
- Il Servizio App accede ai segreti usando riferimenti di Key Vault come impostazioni dell'app.
- L'accesso all'insieme di credenziali delle chiavi è limitato all'applicazione. I collaboratori dell'app, ad esempio gli amministratori, potrebbero avere il controllo completo delle risorse del servizio app e allo stesso tempo non hanno accesso ai segreti di Key Vault.
- Se il codice dell'applicazione accede già ai segreti di connessione con le impostazioni dell'app, non è necessaria alcuna modifica.
In questa esercitazione si apprenderà quanto segue:
- Abilitare le identità gestite
- Usare le identità gestite per connettersi a Key Vault
- Usare i riferimenti di Key Vault
- Accedi agli strumenti di fonderia
Prerequisiti
Preparare l'ambiente per il Azure CLI.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione a Azure Cloud Shell.
Se si preferisce, per eseguire localmente i comandi di riferimento CLI, installare l'interfaccia della riga di comando di Azure per eseguire i relativi comandi di riferimento. Se si esegue in Windows o macOS, è consigliabile eseguire Azure CLI in un contenitore Docker. Per altre informazioni, vedere Come eseguire il Azure CLI in un contenitore Docker.
Se si usa un'installazione locale, accedere al Azure CLI usando il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Authenticate to Azure using Azure CLI.For other sign-in options, see Authenticate to Azure using Azure CLI.
Quando richiesto, installare l'estensione Azure CLI al primo uso. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con Azure CLI.
Esegui az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, avviare az upgrade.
Creare un'applicazione con connettività a Foundry Tools
Creare un gruppo di risorse per contenere tutte le risorse:
# Save the resource group name as a variable for convenience groupName=myKVResourceGroup region=canadacentral az group create --name $groupName --location $regionCreare una risorsa degli strumenti Foundry. Sostituire <cs-resource-name> con un nome univoco.
# Save the resource name as a variable for convenience. csResourceName=<cs-resource-name> az cognitiveservices account create --resource-group $groupName --name $csResourceName --location $region --kind TextAnalytics --sku F0 --custom-domain $csResourceNameNota
--sku F0crea una risorsa Foundry Tools gratuita. Ogni sottoscrizione è limitata a una quota di una risorsa di livelloTextAnalyticsgratuito. Se è già stata usata la quota, usare--sku Sinvece .
Configurare un'app .NET
Clonare il repository di esempio in locale sul computer e distribuire l'applicazione di esempio su App Service. Sostituire <app-name> con un nome univoco.
# Save the app name as a variable for convenience
appName=<app-name>
# Clone the sample application
git clone https://github.com/Azure-Samples/app-service-language-detector.git
cd app-service-language-detector/dotnet
az webapp up --sku F1 --resource-group $groupName --name $appName --plan $appName --location $region
Configurare i segreti come impostazioni dell'app
Configurare i segreti di Strumenti Foundry come impostazioni dell'app
CS_ACCOUNT_NAMEeCS_ACCOUNT_KEY.# Get the subscription key for the Foundry Tools resource csKey1=$(az cognitiveservices account keys list --resource-group $groupName --name $csResourceName --query key1 --output tsv) az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="$csResourceName" CS_ACCOUNT_KEY="$csKey1"In un browser passare all'app distribuita in
<app-name>.azurewebsites.net. Provare il rilevamento della lingua immettendo stringhe in varie lingue.
Se si esamina il codice dell'applicazione, l'output di debug per i risultati del rilevamento potrebbe essere nello stesso colore del tipo di carattere dello sfondo. È possibile visualizzare l'output evidenziando lo spazio vuoto direttamente sotto il risultato.
Connettività back-end sicura
Le credenziali di connessione vengono ora archiviate come parametri di applicazione nel tuo servizio App. Questo approccio protegge già i segreti di connessione dalla codebase dell'applicazione. Tuttavia, qualsiasi collaboratore che può gestire l'app può anche visualizzare le impostazioni dell'app. In questa sezione si spostano i segreti di connessione in un key vault. Bloccate l'accesso in modo che solo tu possa gestirlo e solo App Service possa leggerlo usando la sua identità gestita.
Creare un insieme di credenziali delle chiavi. Sostituire <vault-name> con un nome univoco.
# Save the key vault name as a variable for convenience vaultName=<vault-name> az keyvault create --resource-group $groupName --name $vaultName --location $region --sku standard --enable-rbac-authorizationIl parametro
--enable-rbac-authorizationimposta il controllo degli accessi in base al ruolo di Azure come modello di autorizzazione. Questa impostazione invalida tutte le autorizzazioni dei criteri di accesso per impostazione predefinita.Assegnarsi il ruolo Responsabile dei segreti di Key Vault di Controllo degli accessi in base al ruolo per l'insieme di credenziali.
vaultResourceId=$(az keyvault show --name $vaultName --query id --output tsv) myId=$(az ad signed-in-user show --query id --output tsv) az role assignment create --role "Key Vault Secrets Officer" --assignee-object-id $myId --assignee-principal-type User --scope $vaultResourceIdAbilitare l'identità gestita assegnata dal sistema per l'app e assegnarle il ruolo Utente dei segreti di Key Vault di Controllo degli accessi in base al ruolo per l'insieme di credenziali.
az webapp identity assign --resource-group $groupName --name $appName --scope $vaultResourceId --role "Key Vault Secrets User"Aggiungere il nome della risorsa Foundry Tools e la chiave di sottoscrizione come "secrets" al vault, e salvare i loro ID come variabili di ambiente per il passaggio successivo.
csResourceKVUri=$(az keyvault secret set --vault-name $vaultName --name csresource --value $csResourceName --query id --output tsv) csKeyKVUri=$(az keyvault secret set --vault-name $vaultName --name cskey --value $csKey1 --query id --output tsv)In precedenza, i segreti sono stati impostati come impostazioni dell'app
CS_ACCOUNT_NAMEeCS_ACCOUNT_KEY. Ora impostali come riferimenti al Key Vault.az webapp config appsettings set --resource-group $groupName --name $appName --settings CS_ACCOUNT_NAME="@Microsoft.KeyVault(SecretUri=$csResourceKVUri)" CS_ACCOUNT_KEY="@Microsoft.KeyVault(SecretUri=$csKeyKVUri)"In un browser passare di nuovo a
<app-name>.azurewebsites.net. Se si ottengono i risultati del rilevamento, ci si connette all'endpoint degli Strumenti Foundry usando i riferimenti a Key Vault.
Congratulazioni, la tua app ora si connette a Foundry Tools usando i segreti conservati nell'insieme di chiavi e non sono state apportate modifiche al codice dell'applicazione.
Pulire le risorse
Nei passaggi precedenti sono state create le risorse di Azure in un gruppo di risorse. Se non si prevede che queste risorse siano necessarie in futuro, eliminare il gruppo di risorse eseguendo il comando seguente nel Cloud Shell:
az group delete --name $groupName
L'esecuzione del comando può richiedere un minuto.