Condividi tramite


Come proteggere un'applicazione Web a pagina singola con accesso non interattivo

Proteggere un'applicazione Web a pagina singola con Microsoft Entra ID, anche quando l'utente non è in grado di accedere a Microsoft Entra ID.

Per creare questo flusso di autenticazione non interattivo, creare prima di tutto un servizio Web protetto di Funzioni di Azure responsabile dell'acquisizione di token di accesso da Microsoft Entra ID. Questo servizio Web è disponibile esclusivamente per l'applicazione Web a pagina singola.

Per visualizzare i dettagli di autenticazione dell'account di Mappe di Azure nel portale di Azure:

  1. Accedere al portale di Azure.

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

  3. In Impostazioni nel riquadro sinistro, selezionare Autenticazione.

    Screenshot che mostra le opzioni di autenticazione di Mappe di Azure nel portale di Azure.

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 valore Client 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 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 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

Suggerimento

Mappe di Azure può supportare i token di accesso da flussi interattivi o di accesso utente. È possibile usare flussi interattivi per un ambito più limitato di revoca dell’accesso e gestione dei segreti.

Creazione di una funzione di Azure

Per creare un'applicazione di servizi Web protetta che è responsabile dell'autenticazione in Microsoft Entra ID:

  1. Creare una funzione nel portale di Azure. Per altre informazioni, vedere Introduzione a Funzioni di Azure.

  2. Configurare i criteri CORS nella funzione di Azure in modo che siano accessibili dall'applicazione Web a pagina singola. I criteri CORS proteggono i client del browser con le origini consentite dell'applicazione Web. Per altre informazioni, vedere Aggiungere funzionalità CORS.

  3. Aggiungere un'identità assegnata dal sistema nella funzione di Azure per consentire la creazione di un'entità servizio per l'autenticazione in Microsoft Entra ID.

  4. Concedere l'accesso in base al ruolo per l'identità assegnata dal sistema all'account Mappe di Azure. Per altre informazioni, vedere Concedere l'accesso in base al ruolo.

  5. Scrivere codice per la funzione di Azure per ottenere i token di accesso di Mappe di Azure usando l'identità assegnata dal sistema con uno dei meccanismi supportati o il protocollo REST. Per altre informazioni, vedere Ottenere token per le risorse di Azure.

    Ecco un esempio di protocollo REST:

    GET /MSI/token?resource=https://atlas.microsoft.com/&api-version=2019-08-01 HTTP/1.1
    Host: localhost:4141
    

    Ecco una risposta di esempio:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "access_token": "eyJ0eXAi…",
        "expires_on": "1586984735",
        "resource": "https://atlas.microsoft.com/",
        "token_type": "Bearer",
        "client_id": "..."
    }
    
  6. Configurare la sicurezza per la funzione di Azure HttpTrigger:

    1. Creare una chiave di accesso alla funzione
    2. Proteggere l'endpoint HTTP per la funzione di Azure nell'ambiente di produzione.
  7. Configurare un SDK Web di mappe di Azure dell’applicazione Web.

    //URL to custom endpoint to fetch Access token
    var url = 'https://{App-Name}.azurewebsites.net/api/{Function-Name}?code={API-Key}';
    
    var map = new atlas.Map('myMap', {
                center: [-122.33, 47.6],
                zoom: 12,
                language: 'en-US',
                view: "Auto",
            authOptions: {
                authType: "anonymous",
                clientId: "<insert>", // azure map account client id
                getToken: function(resolve, reject, map) {
                    fetch(url).then(function(response) {
                        return response.text();
                    }).then(function(token) {
                        resolve(token);
                    });
                }
            }
        });
    
        // use the following events to debug, you can remove them at any time.
        map.events.add("tokenacquired", function () {
            console.log("token acquired");
        });
        map.events.add("error", function (err) {
            console.log(JSON.stringify(err.error));
        });
    

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.

Passaggi successivi

Informazioni approfondite su uno scenario di applicazione a pagina singola:

Trovare le metriche di utilizzo delle API per l'account Mappe di Azure:

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