Proteggere un'applicazione daemon
Questo articolo descrive come ospitare applicazioni daemon in un ambiente attendibile e sicuro in Microsoft Mappe di Azure.
Di seguito sono riportati esempi di applicazioni daemon:
- Processo Web di Azure
- App per le funzioni di Azure
- Servizio Windows
- Un servizio in background in esecuzione e affidabile
Visualizzare i dettagli di autenticazione Mappe di Azure
Per visualizzare i dettagli di autenticazione dell'account di Mappe di Azure nel portale di Azure:
Accedere al portale di Azure.
Passare al menu del portale di Azure. Selezionare Tutte le risorse e quindi selezionare l'account Mappe di Azure.
In Impostazioni nel riquadro sinistro, selezionare Autenticazione.
Al momento della creazione dell'account Mappe di Azure vengono creati tre valori. Essi vengono usati per supportare due tipi di autenticazione in Mappe di Azure:
- Autenticazione Microsoft Entra:
Client ID
rappresenta l'account da usare per le richieste dell’API REST. Il valoreClient ID
deve essere archiviato nella configurazione dell'applicazione, perciò deve essere recuperato prima di effettuare richieste HTTP di Mappe di Azure che usano l'autenticazione Microsoft Entra. - Autenticazione con chiave condivisa:
Primary Key
eSecondary Key
vengono usati come chiave di sottoscrizione per l'autenticazione con chiave condivisa. L'autenticazione con chiave condivisa si basa sul passaggio della chiave generata dall'account di Mappe di Azure con ogni richiesta a Mappe di Azure. È consigliabile rigenerare regolarmente le chiavi. Per mantenere le connessioni correnti durante la rigenerazione, vengono fornite due chiavi. Una chiave può essere in uso durante la rigenerazione dell'altra. Quando si rigenerano le chiavi è necessario aggiornare tutte le applicazioni che accedono a questo account per usare le nuove chiavi. Per altre informazioni, vedere Autenticazione con Mappe di Azure
Importante
Per le applicazioni di produzione, è consigliabile implementare l'ID Microsoft Entra e il controllo degli accessi in base al ruolo di Azure. Per una panoramica dei concetti relativi a Microsoft Entra, vedere Autenticazione con Mappe di Azure.
Scenario: Autenticazione con chiave condivisa con Azure Key Vault
Le applicazioni che usano l'autenticazione con chiave condivisa devono archiviare le chiavi in un archivio protetto. Questo scenario descrive come archiviare in modo sicuro la chiave dell'applicazione come segreto in Azure Key Vault. Anziché archiviare la chiave condivisa nella configurazione dell'applicazione, l'applicazione può recuperare la chiave condivisa come segreto di Azure Key Vault. Per semplificare la rigenerazione delle chiavi, è consigliabile che le applicazioni usino una chiave alla volta. Le applicazioni possono quindi rigenerare la chiave inutilizzata e distribuire la chiave rigenerata in Azure Key Vault mantenendo al tempo stesso le connessioni correnti con una chiave. Per informazioni su come configurare Azure Key Vault, vedere La guida per sviluppatori di Azure Key Vault.
Importante
Questo scenario accede indirettamente all'ID Microsoft Entra tramite Azure Key Vault. È tuttavia consigliabile usare direttamente l'autenticazione di Microsoft Entra. L'uso di Microsoft Entra ID evita direttamente la complessità aggiuntiva e i requisiti operativi dell'uso dell'autenticazione con chiave condivisa e della configurazione dell'insieme di credenziali delle chiavi.
I passaggi seguenti descrivono questo processo:
- Creare un insieme di credenziali di Azure Key Vault.
- Creare un'entità servizio Microsoft Entra creando una registrazione dell'app o un'identità gestita. L'entità creata è responsabile dell'accesso ad Azure Key Vault.
- Assegnare l'accesso all'entità servizio all'autorizzazione dei segreti
get
di Chiave di Azure. Per informazioni dettagliate su come impostare le autorizzazioni, vedere Assegnare un criterio di accesso a Key Vault usando il portale di Azure. - Assegnare temporaneamente l'accesso alle autorizzazioni per i segreti
set
come sviluppatore. - Impostare la chiave condivisa nei segreti di Key Vault e fare riferimento all'ID segreto come configurazione per l'applicazione daemon.
- Rimuovere l'autorizzazione per i segreti
set
. - Per recuperare il segreto della chiave condivisa da Azure Key Vault, implementare l'autenticazione Di Microsoft Entra nell'applicazione daemon.
- Creare una richiesta API REST Mappe di Azure con la chiave condivisa. A questo punto, l'applicazione daemon può recuperare la chiave condivisa dall'insieme di credenziali delle chiavi.
Suggerimento
Se l'app è ospitata nell'ambiente Azure, è consigliabile usare un'identità gestita per ridurre i costi e la complessità della gestione di un segreto per l'autenticazione. Per informazioni su come configurare un'identità gestita, vedere Esercitazione: Usare un'identità gestita per connettere Key Vault a un'app Web di Azure in .NET.
Scenario: Controllo degli accessi in base al ruolo di Microsoft Entra
Dopo aver creato un account Mappe di Azure, il valore Mappe di Azure Client ID
è presente nella pagina dei dettagli dell'autenticazione portale di Azure. Questo valore rappresenta l'account da usare per le richieste dell'API REST. Questo valore deve essere archiviato nella configurazione dell'applicazione e recuperato prima di effettuare richieste HTTP. L'obiettivo dello scenario consiste nell'abilitare l'autenticazione dell'applicazione daemon all'ID Microsoft Entra e chiamare Mappe di Azure API REST.
Suggerimento
Per abilitare i vantaggi dei componenti dell'identità gestita, è consigliabile ospitare in Azure Macchine virtuali, set di scalabilità di macchine virtuali o servizio app.
Ospitare un daemon nelle risorse di Azure
Quando si eseguono nelle risorse di Azure, è possibile configurare le identità gestite da Azure per abilitare operazioni di gestione delle credenziali a basso costo e minimo.
Per abilitare l'accesso dell'applicazione a un'identità gestita, vedere Panoramica delle identità gestite.
Alcuni vantaggi dell'identità gestita sono:
- Autenticazione di crittografia a chiave pubblica con certificato X509 gestito dal sistema di Azure.
- Sicurezza di Microsoft Entra con certificati X509 anziché segreti client.
- Azure gestisce e rinnova tutti i certificati associati alla risorsa identità gestita.
- La gestione operativa delle credenziali è semplificata perché l'identità gestita rimuove la necessità di un servizio di archiviazione segreti protetto, ad esempio Azure Key Vault.
Ospitare un daemon in risorse non di Azure
Le identità gestite sono disponibili solo quando vengono eseguite in un ambiente di Azure. Di conseguenza, è necessario configurare un'entità servizio tramite una registrazione dell'applicazione Microsoft Entra per l'applicazione daemon.
Creare una nuova registrazione dell'applicazione
Se la registrazione dell'applicazione è già stata creata, passare a Assegna autorizzazioni API delegate.
Per creare una nuova registrazione dell'applicazione:
Accedere al portale di Azure.
Selezionare Microsoft Entra ID.
In Gestisci nel riquadro sinistro selezionare Registrazioni app.
Selezionare la scheda + Nuova registrazione .
Immettere un nome e quindi selezionare un tipo di account di supporto.
Selezionare Registra.
Assegnare autorizzazioni API delegate
Per assegnare autorizzazioni API delegate a Mappe di Azure:
Se non è già stato fatto, accedere al portale di Azure.
Selezionare Microsoft Entra ID.
In Gestisci nel riquadro sinistro selezionare Registrazioni app.
Selezionare l'applicazione.
In Gestisci nel riquadro sinistro selezionare Autorizzazioni API.
Seleziona Aggiungi autorizzazione.
Selezionare la scheda API usate dall'organizzazione.
Nella casella di ricerca immettere Mappe di Azure.
Selezionare Mappe di Azure.
Selezionare la casella di controllo Access Mappe di Azure .
Selezionare Aggiungi autorizzazioni.
Creare un segreto client o configurare un certificato
Per implementare l'autenticazione basata su server o applicazioni nell'applicazione, è possibile scegliere una delle due opzioni seguenti:
- Caricare un certificato di chiave pubblica.
- Creare un segreto client.
Caricare un certificato di chiave pubblica
Per caricare un certificato di chiave pubblica:
In Gestisci nel riquadro sinistro selezionare Certificati e segreti.
Selezionare Carica certificato.
A destra della casella di testo selezionare l'icona del file.
Selezionare un file con estensione crt, .cer o pem e quindi selezionare Aggiungi.
Creare un segreto client
Per creare un segreto client:
In Gestisci nel riquadro sinistro selezionare Certificati e segreti.
Selezionare + Nuovo segreto client.
Immettere una descrizione per il segreto client.
Selezionare Aggiungi.
Copiare il segreto e archiviarlo in modo sicuro in un servizio, ad esempio Azure Key Vault. Usare anche il segreto nella sezione Richiedi token con identità gestita di questo articolo.
Importante
Per archiviare in modo sicuro il certificato o il segreto, vedere la Guida per sviluppatori di Azure Key Vault. Questo segreto verrà usato per ottenere i token dall'ID Microsoft Entra.
Concedere l'accesso basato sui ruoli per gli utenti a Mappe di Azure
È possibile concedere il controllo degli accessi in base al ruolo di Azure assegnando un gruppo o un'entità di sicurezza di Microsoft Entra a una o più definizioni di ruolo di Mappe di Azure.
Per visualizzare le definizioni dei ruoli di Azure disponibili per Mappe di Azure, vedere Visualizzare le definizioni dei ruoli di Mappe di Azure predefinite.
Per informazioni dettagliate su come assegnare un ruolo di Mappe di Azure disponibile all'identità gestita o all'entità servizio creata, vedere Assegnare i ruoli di Azure usando il portale di Azure
Per gestire in modo efficiente l'app Mappe di Azure e l'accesso alle risorse di un elevato numero di utenti, vedere Gruppi di Microsoft Entra.
Importante
Affinché gli utenti possano eseguire l'autenticazione in un'applicazione, devono prima essere creati in Microsoft Entra ID. Per altre informazioni, vedere Aggiungere o eliminare utenti usando Microsoft Entra ID.
Per informazioni su come gestire in modo efficace una directory di grandi dimensioni per gli utenti, vedere Microsoft Entra ID.
Avviso
Le definizioni dei ruoli predefiniti di Mappe di Azure offrono un accesso autorizzazione molto ampio a molte API REST di Mappe di Azure. Per limitare al minimo l'accesso alle API, vedere Creare una definizione di ruolo personalizzata e assegnare l'identità assegnata dal sistema alla definizione del ruolo personalizzata. Ciò consente all'applicazione di accedere a Mappe di Azure con i privilegi minimi necessari.
Richiedere un token con identità gestita
Dopo aver configurato un'identità gestita per la risorsa di hosting, è possibile usare Azure SDK o l'API REST per acquisire un token per Mappe di Azure. Per informazioni su come acquisire un token di accesso, vedere Acquisire un token di accesso.
Richiedere il token con la registrazione dell'applicazione
Dopo aver registrato l'app e associarla a Mappe di Azure, sarà necessario richiedere un token di accesso.
Per acquisire il token di accesso:
Se non è già stato fatto, accedere al portale di Azure.
Selezionare Microsoft Entra ID.
In Gestisci nel riquadro sinistro selezionare Registrazioni app.
Selezionare l'applicazione.
Verrà visualizzata la pagina Panoramica. Copiare l'ID applicazione (client) e l'ID directory (tenant).
Questo articolo usa l'applicazione bruno per creare la richiesta di token, ma è possibile usare un ambiente di sviluppo api diverso.
Aprire l'app bruno, selezionare NUOVA RICHIESTA per creare la richiesta.
Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta, ad esempio richiesta token POST.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
https://login.microsoftonline.com/{Tenant-ID}/oauth2/v2.0/token?response_type=token&grant_type=client_credentials&client_id={Client-ID}&client_secret={Client-Secret}&scope=https://atlas.microsoft.com/.default
Nota
Replace:
{Tenant-ID}
con l'ID directory (tenant){Client-ID}
con l'ID applicazione (client){Client-Secret}
con il segreto client.
Selezionare il pulsante Esegui
Verrà visualizzata la risposta JSON seguente:
{
"token_type": "Bearer",
"expires_in": 86399,
"ext_expires_in": 86399,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFq..."
}
Per altre informazioni sul flusso di autenticazione, vedere Flusso delle credenziali client OAuth 2.0 in Microsoft Identity Platform
Passaggi successivi
Per esempi più dettagliati:
Trovare le metriche di utilizzo delle API per l'account Mappe di Azure:
Esplorare gli esempi che illustrano come integrare Microsoft Entra ID con Mappe di Azure: