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.
Informazioni su come accedere ai servizi Azure, come Archiviazione di Azure da un'app Web, non un utente connesso in esecuzione nel servizio app di Azure usando identità gestite. Questa esercitazione illustra la connessione a Azure Storage come esempio.
È possibile accedere in modo sicuro a qualsiasi servizio che supporti l'identità gestita (B nell'immagine seguente) usando questa esercitazione:
- Azure Storage
- Azure SQL Database
- Azure Key Vault
Si vuole aggiungere l'accesso sicuro ai servizi di Azure, tra cui Archiviazione di Azure, database SQL di Azure e Azure Key Vault, dall'app Web. È possibile usare una chiave condivisa, ma in questo caso sarebbe necessario preoccuparsi della sicurezza operativa degli utenti che possono creare, distribuire e gestire il segreto. È anche possibile che la chiave possa essere controllata in GitHub, che gli hacker sanno come cercare. Un modo più sicuro per concedere all'app Web l'accesso ai dati consiste nell'usare le identità gestite.
Un'identità gestita da Microsoft Entra ID consente al servizio app di accedere alle risorse tramite il controllo degli accessi in base al ruolo, senza richiedere le credenziali dell'app. Dopo aver assegnato un'identità gestita all'app Web, Azure si occupa della creazione e della distribuzione di un certificato. Gli utenti non devono preoccuparsi di gestire i segreti o le credenziali dell'app.
In questa esercitazione apprenderai a:
- Creare un'identità gestita assegnata dal sistema in un'app Web.
- Creare un account di archiviazione e un contenitore Azure Blob Storage.
- Accedere all'archiviazione da un'app Web usando identità gestite.
Se non si ha un account Azure, creare un account free prima di iniziare.
Prerequisiti
Un'applicazione Web in esecuzione nel servizio app di Azure:
Abilitare l'identità gestita in un'app
Se si crea e si pubblica l'app Web tramite Visual Studio, l'identità gestita è stata abilitata automaticamente nell'app.
Nel servizio app selezionare Identità nel menu a sinistra e quindi Selezionare Sistema assegnato. Verificare che lo Stato sia impostato su Sì.
In caso contrario, selezionare Sì e quindi Salva. Per abilitare l'identità gestita assegnata dal sistema, nella finestra di dialogo di conferma selezionare Sì. Una volta abilitata l'identità gestita, lo stato è impostato su Sì e l'ID oggetto è disponibile.
Questo passaggio crea un nuovo ID oggetto, diverso dall'ID app creato nel riquadro Autenticazione/Autorizzazione. Copiare l'ID oggetto dell'identità gestita assegnata dal sistema. Sarà necessario in un secondo momento.
Creare un account di archiviazione e un contenitore Blob Storage
Ora puoi creare un account di archiviazione e un contenitore Blob Storage.
Ogni account di archiviazione deve appartenere a un gruppo di risorse Azure. Un gruppo di risorse è un contenitore logico per i servizi di Azure. Quando si crea un account di archiviazione, è possibile creare un nuovo gruppo di risorse o usare un gruppo di risorse esistente. Questo articolo illustra come creare un nuovo gruppo di risorse.
Un account di archiviazione per utilizzo generico v2 consente l'accesso a tutti i servizi di Archiviazione di Azure: BLOB, file, code, tabelle e dischi. La procedura descritta qui crea un account di archiviazione per utilizzo generico v2, ma i passaggi per creare qualsiasi tipo di account di archiviazione sono simili.
I BLOB in Azure Storage sono organizzati in contenitori. Prima di poter caricare un BLOB più avanti in questa esercitazione, sarà necessario creare un contenitore.
Per creare un account di archiviazione per utilizzo generico v2 nel portale di Azure, seguire questa procedura.
Nel menu del portale di Azure immettere Account di archiviazione. Quando si inizia a digitare, l'elenco viene filtrato in base all'input. Selezionare Account di archiviazione.
Nella finestra Account di archiviazione visualizzata, selezionare Crea.
Selezionare la sottoscrizione in cui creare l'account di archiviazione.
In Gruppo di risorse selezionare il gruppo di risorse che contiene l'app Web.
Immettere un nome per l'account di archiviazione. Il nome scelto deve essere univoco in Azure. Il nome deve avere una lunghezza compresa tra 3 e 24 caratteri e può includere solo numeri e lettere minuscole.
Selezionare una località (area) per l'account di archiviazione oppure usare il valore predefinito.
Per Tipo di archiviazione preferito selezionare Archiviazione BLOB di Azure o Azure Data Lake Storage Gen 2.
Lasciare questi campi impostati sui valori predefiniti:
Campo valore Prestazioni Normale Ridondanza Archiviazione con ridondanza geografica Selezionare Rivedi e crea per rivedere le impostazioni dell'account di archiviazione e creare l'account.
Seleziona Crea.
Per creare un contenitore Blob Storage in Azure Storage, seguire questa procedura.
Passare al nuovo account di archiviazione nel portale di Azure.
Nel menu a sinistra per l'account di archiviazione, in Archiviazione dati selezionare Contenitori.
Selezionare Aggiungi contenitore.
Digitare un nome per il nuovo contenitore. Il nome del contenitore deve essere scritto tutto minuscolo, deve iniziare con una lettera o un numero e può contenere solo lettere, numeri e il trattino (-).
Impostare il livello di accesso pubblico al contenitore. Il livello predefinito è Privato (nessun accesso anonimo).
Seleziona OK per creare il contenitore.
Concedere l'accesso all'account di archiviazione
Prima di poter creare, leggere o eliminare i BLOB, è necessario concedere all'app Web l'accesso all'account di archiviazione. In una sezione precedente, è stata configurata l'app Web che viene eseguita su App Service con un'identità gestita. Usando RBAC di Azure, è possibile concedere all'identità gestita l'accesso a un'altra risorsa, proprio come per qualsiasi principale di sicurezza.
Il ruolo Collaboratore ai dati dei BLOB di archiviazione fornisce all'app Web, rappresentata dall'identità gestita assegnata dal sistema, l'accesso in lettura, scrittura ed eliminazione ai dati e al contenitore BLOB.
Nota
Azure RBAC non supporta alcune operazioni sui contenitori BLOB privati, come la visualizzazione o la copia di BLOB tra account. Un contenitore BLOB con livello di accesso privato richiede un token SAS per qualsiasi operazione non autorizzata dal RBAC di Azure. Per altre informazioni, vedere Quando usare una firma di accesso condiviso.
- Nel portale Azure, accedi al tuo account di archiviazione per concedere all'app Web l'accesso.
- Nel menu a sinistra selezionare Controllo di accesso (IAM) e quindi selezionare Assegnazioni di ruolo. Viene visualizzato un elenco di chi può accedere all'account di archiviazione.
- Si desidera aggiungere un'assegnazione di ruolo al servizio app che necessita di accesso all'account di archiviazione. Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo.
- Assegnare il ruolo Collaboratore ai dati dei BLOB di archiviazione al Servizio app a livello dell'account di archiviazione. Per altre informazioni, vedere Assegnare ruoli di Azure tramite il portale di Azure.
L'app Web può ora accedere all'account di archiviazione.
Accedere ad Archiviazione BLOB
La classe DefaultAzureCredential del pacchetto @azure/identity viene usata per ottenere una credenziale del token di accesso per il tuo codice, per autorizzare le richieste ad Azure Storage. La classe BlobServiceClient da @azure/storage-blob viene usata per caricare un nuovo BLOB nell'archiviazione. Creare un'istanza della classe DefaultAzureCredential, che usa l'identità gestita per recuperare token e collegarli al client del servizio BLOB.
L'esempio di codice seguente ottiene le credenziali del token autenticato e le usa per creare un oggetto client del servizio, che carica un nuovo BLOB.
Esempio di JavaScript
const { DefaultAzureCredential } = require("@azure/identity");
const { BlobServiceClient } = require("@azure/storage-blob");
const defaultAzureCredential = new DefaultAzureCredential();
// Some code omitted for brevity.
async function uploadBlob(accountName, containerName, blobName, blobContents) {
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
defaultAzureCredential
);
const containerClient = blobServiceClient.getContainerClient(containerName);
try {
await containerClient.createIfNotExists();
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
const uploadBlobResponse = await blockBlobClient.upload(blobContents, blobContents.length);
console.log(`Upload block blob ${blobName} successfully`, uploadBlobResponse.requestId);
} catch (error) {
console.log(error);
}
}
Pulire le risorse
Se completi questa esercitazione e non hai più bisogno dell'app web o delle risorse associate, elimina le risorse che hai creato.
Eliminare il gruppo di risorse
Nel portale di Azure selezionare Gruppi di risorse dal menu del portale di Azure e selezionare il gruppo di risorse che contiene il servizio app e il piano di servizio app.
Fare clic su Elimina gruppo di risorse per eliminare il gruppo e tutte le risorse al suo interno.
Immettere il nome del gruppo di risorse da confermare.
L'esecuzione di questo processo potrebbe richiedere alcuni minuti.
Passaggi successivi
In questo tutorial hai imparato come:
- Creare un'identità gestita assegnata dal sistema.
- Creare un account di archiviazione e un contenitore Blob Storage.
- Accedere all'archiviazione da un'app Web usando identità gestite.