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

    Dettagli di autenticazione.

Quando viene creato l'account Mappe di Azure, vengono creati tre valori. Vengono usati per supportare due tipi di autenticazione in Mappe di Azure:

  • Autenticazione di Azure Active Directory: 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 Mappe di Azure richieste HTTP che usano l'autenticazione di Azure AD.
  • Autenticazione con chiave condivisa: Primary Key e Secondary 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 il controllo degli accessi in base al ruolo di Azure e Azure AD. Per una panoramica dei concetti relativi ad Azure AD, 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 sicuro. 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 le connessioni correnti con una sola chiave. Per informazioni su come configurare Key Vault di Azure, vedere Guida per sviluppatori di Azure Key Vault.

Importante

Questo scenario accede indirettamente ad Azure Active Directory tramite Azure Key Vault. È tuttavia consigliabile usare direttamente l'autenticazione di Azure AD. L'uso diretto di Azure AD evita la complessità aggiuntiva e i requisiti operativi dell'uso dell'autenticazione con chiave condivisa e della configurazione di Key Vault.

I passaggi seguenti illustrano questo processo:

  1. Creare un Key Vault di Azure.
  2. Creare un'entità servizio di Azure AD creando una registrazione dell'app o un'identità gestita. L'entità creata è responsabile dell'accesso al Key Vault di Azure.
  3. Assegnare l'accesso dell'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 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 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 Azure Active Directory 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 dal Key Vault.

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 Azure AD

Dopo aver creato un account Mappe di Azure, il valore Mappe di Azure Client ID è presente nella pagina dei dettagli di autenticazione portale di Azure. Questo valore rappresenta l'account da usare per le richieste api REST. Questo valore deve essere archiviato nella configurazione dell'applicazione e recuperato prima di effettuare richieste HTTP. L'obiettivo dello scenario è consentire all'applicazione daemon di eseguire l'autenticazione in Azure AD 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 Servizi app.

Ospitare un daemon nelle risorse di Azure

Quando si esegue 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 Azure AD 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

Quando si esegue in un ambiente non Azure, le identità gestite non sono disponibili. Di conseguenza, è necessario configurare un'entità servizio tramite una registrazione dell'applicazione Azure AD 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 Azure Active Directory.

  3. In Gestisci nel riquadro sinistro selezionare Registrazioni app.

  4. Selezionare la scheda + Nuova registrazione .

    Visualizzare le registrazioni dell'app.

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

    Creare la registrazione dell'app.

  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 Azure Active Directory.

  3. In Gestisci nel riquadro sinistro selezionare Registrazioni app.

  4. Selezionare l'applicazione.

    Selezionare Registrazioni app.

  5. In Gestisci nel riquadro sinistro selezionare Autorizzazioni API.

  6. Selezionare Aggiungi un'autorizzazione.

    Aggiungere l'autorizzazione per l'app.

  7. Selezionare la scheda API usate dall'organizzazione .

  8. Nella casella di ricerca immettere Mappe di Azure.

  9. Selezionare Mappe di Azure.

    Richiedere l'autorizzazione dell'app.

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

  11. Selezionare Aggiungi autorizzazioni.

    Selezionare le autorizzazioni per le API dell'app.

Creare un segreto client o configurare il certificato

Per implementare l'autenticazione basata su server o applicazione 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 & segreti.

  2. Selezionare Carica certificato. Caricare il certificato.

  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.

    Caricare il file di certificato.

Creare un segreto client

Per creare un segreto client:

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

  2. Selezionare + Nuovo segreto client.

    Nuovo segreto client.

  3. Immettere una descrizione per il segreto client.

  4. Selezionare Aggiungi.

    Aggiungere un nuovo segreto client.

  5. Copiare il segreto e archiviarlo in modo sicuro in un servizio, ad esempio Azure Key Vault. Verrà inoltre usato il segreto nel token di richiesta con la sezione Identità gestita di questo articolo.

    Copiare il segreto client.

    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 da Azure AD.

Concedere l'accesso basato sul 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 Azure AD a una o più definizioni di ruolo Mappe di Azure.

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

Per informazioni dettagliate su come assegnare un ruolo Mappe di Azure disponibile all'identità gestita creata o all'entità servizio, vedere Assegnare ruoli di Azure usando l'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 Azure AD.

Importante

Per consentire agli utenti di eseguire l'autenticazione a un'applicazione, gli utenti devono prima essere creati in Azure AD. Per altre informazioni, vedere Aggiungere o eliminare utenti con Azure AD.

Per informazioni su come gestire in modo efficace una directory di grandi dimensioni per gli utenti, vedere Azure AD.

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 alle API almeno, 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 a Mappe di Azure.

Richiedere un token con identità gestita

Dopo aver configurato un'identità gestita per la risorsa di hosting, è possibile usare l'API AZURE SDK o 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 token con 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 Azure Active Directory.

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

    Copiare i parametri del token.

Verrà usata 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 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), l'ID 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}%3D&scope=api%3A%2F%2Fazmaps.fundamentals%2F.default
    
  6. Selezionare 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 di credenziali client OAuth 2.0 nel 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 Azure AD con Mappe di Azure: