Condividi tramite


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 Mappe di Azure nel portale di Azure:

  1. Accedere al portale di Azure.

  2. Passare al menu portale di Azure. Selezionare Tutte le risorse e quindi selezionare l'account Mappe di Azure.

  3. In Impostazioni nel riquadro sinistro selezionare Autenticazione.

    Screenshot showing your Azure Maps authentication options in the Azure portal.

Al momento della creazione dell'account Mappe di Azure vengono creati tre valori. Vengono usati per supportare due tipi di autenticazione in Mappe di Azure:

  • Autenticazione di Microsoft Entra: Client ID rappresenta l'account da usare per le richieste api REST. Il Client ID valore deve essere archiviato nella configurazione dell'applicazione e quindi deve essere recuperato prima di effettuare richieste HTTP Mappe di Azure che usano l'autenticazione Microsoft Entra.
  • Autenticazione con chiave condivisa: e Secondary KeyPrimary 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 Mappe di Azure con ogni richiesta di 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:

  1. Creare un insieme di credenziali delle chiavi di Azure.
  2. 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.
  3. 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.
  4. Assegnare temporaneamente l'accesso alle autorizzazioni per i segreti set come sviluppatore.
  5. Impostare la chiave condivisa nei segreti di Key Vault e fare riferimento all'ID segreto come configurazione per l'applicazione daemon.
  6. Rimuovere l'autorizzazione per i segreti set .
  7. Per recuperare il segreto della chiave condivisa da Azure Key Vault, implementare l'autenticazione Di Microsoft Entra nell'applicazione daemon.
  8. 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:

  1. Accedere al portale di Azure.

  2. Selezionare Microsoft Entra ID.

  3. In Gestisci nel riquadro sinistro selezionare Registrazioni app.

  4. Selezionare la scheda + Nuova registrazione .

    A screenshot showing application registration in Microsoft Entra ID.

  5. Immettere un nome e quindi selezionare un tipo di account di supporto.

    Create app registration.

  6. Selezionare Registra.

Assegnare autorizzazioni API delegate

Per assegnare autorizzazioni API delegate a Mappe di Azure:

  1. Se non è già stato fatto, accedere al portale di Azure.

  2. Selezionare Microsoft Entra ID.

  3. In Gestisci nel riquadro sinistro selezionare Registrazioni app.

  4. Selezionare l'applicazione.

    Select app registrations.

  5. In Gestisci nel riquadro sinistro selezionare Autorizzazioni API.

  6. Seleziona Aggiungi autorizzazione.

    Add app permission.

  7. Selezionare la scheda API usate dall'organizzazione .

  8. Nella casella di ricerca immettere Mappe di Azure.

  9. Selezionare Mappe di Azure.

    Request app permission.

  10. Selezionare la casella di controllo Access Mappe di Azure .

  11. Selezionare Aggiungi autorizzazioni.

    Select app API permissions.

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:

  1. In Gestisci nel riquadro sinistro selezionare Certificati e segreti.

  2. Selezionare Carica certificato. Upload certificate.

  3. A destra della casella di testo selezionare l'icona del file.

  4. Selezionare un file con estensione crt, cer o pem e quindi selezionare Aggiungi.

    Upload certificate file.

Creare un segreto client

Per creare un segreto client:

  1. In Gestisci nel riquadro sinistro selezionare Certificati e segreti.

  2. Selezionare + Nuovo segreto client.

    New client secret.

  3. Immettere una descrizione per il segreto client.

  4. Selezionare Aggiungi.

    Add new client secret.

  5. 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.

    Copy client secret.

    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 in base al ruolo 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 Mappe di Azure.

Per visualizzare le definizioni dei ruoli di Azure disponibili per Mappe di Azure, vedere Visualizzare le definizioni di ruolo Mappe di Azure predefinite.

Per informazioni dettagliate su come assegnare un ruolo di Mappe di Azure disponibile all'identità gestita creata o all'entità servizio, vedere Assegnare ruoli di Azure usando il portale di Azure

Per gestire in modo efficiente l'app Mappe di Azure e l'accesso alle risorse di una grande quantità di utenti, vedere Gruppi di Microsoft Entra.

Importante

Affinché gli utenti possano eseguire l'autenticazione in un'applicazione, gli utenti 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

Mappe di Azure definizioni di ruolo predefinite forniscono un accesso di autorizzazione molto elevato a molte API REST Mappe di Azure. Per limitare l'accesso minimo alle API, vedere Creare una definizione di ruolo personalizzata e assegnare l'identità assegnata dal sistema alla definizione del ruolo personalizzata. In questo modo, il privilegio minimo necessario per l'applicazione può accedere alle Mappe di Azure.

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:

  1. Se non è già stato fatto, accedere al portale di Azure.

  2. Selezionare Microsoft Entra ID.

  3. In Gestisci nel riquadro sinistro selezionare Registrazioni app.

  4. Selezionare l'applicazione.

  5. Verrà visualizzata la pagina Panoramica. Copiare l'ID applicazione (client) e l'ID directory (tenant).

    Copy token parameters.

Questo articolo usa l'applicazione Postman per creare la richiesta di token, ma è possibile usare un ambiente di sviluppo api diverso.

  1. Nell'app Postman selezionare Nuovo.

  2. Nella finestra Crea nuovo selezionare Richiesta HTTP.

  3. Immettere un nome di richiesta per la richiesta, ad esempio richiesta token POST.

  4. Selezionare il metodo HTTP POST .

  5. Immettere l'URL seguente per la barra degli indirizzi (sostituire {Tenant-ID} con l'ID directory (tenant), con l'ID {Client-ID} applicazione (client) e {Client-Secret} con il segreto client:

    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
    
  6. Selezionare Send (Invia)

  7. 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 dell'API per l'account Mappe di Azure:

Esplorare gli esempi che illustrano come integrare Microsoft Entra ID con Mappe di Azure: