Condividi tramite


Proteggere un'applicazione Web con l'accesso utente

La guida seguente riguarda un'applicazione ospitata in server Web, gestisce più scenari aziendali e distribuisce nei server Web. L'applicazione deve fornire risorse protette protette solo agli utenti di Microsoft Entra. L'obiettivo dello scenario consiste nell'consentire all'applicazione Web di eseguire l'autenticazione a Microsoft Entra ID e chiamare Mappe di Azure API REST per conto dell'utente.

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

Creare una registrazione dell'applicazione in Microsoft Entra ID

È necessario creare l'applicazione Web in Microsoft Entra ID per consentire agli utenti di accedere. Questa applicazione Web delega quindi l'accesso utente alle API REST Mappe di Azure.

  1. Nell'elenco dei servizi di Azure nella portale di Azure selezionare Microsoft Entra ID> Registrazioni app> Nuova registrazione.

    Screenshot che mostra la registrazione dell'applicazione in Microsoft Entra ID.

  2. Immettere un nome, scegliere un tipo di account di supporto, specificare un URI di reindirizzamento che rappresenta l'URL a cui Microsoft Entra ID rilascia il token, ovvero l'URL in cui è ospitato il controllo mappa. Per altre informazioni, vedere Scenario microsoft Entra ID : app Web che accede agli utenti. Completare i passaggi forniti dallo scenario Microsoft Entra.

  3. Al termine della registrazione dell'applicazione, verificare che l'accesso all'applicazione funzioni per gli utenti. Al termine dell'accesso, all'applicazione può essere concesso l'accesso delegato alle API REST Mappe di Azure.

  4. Per assegnare autorizzazioni API delegate a Mappe di Azure, passare all'applicazione e selezionare Autorizzazioni>API Aggiungi un'autorizzazione. selezionare Mappe di Azure nell'elenco API usate dall'organizzazione.

    Screenshot che mostra l'aggiunta delle autorizzazioni api dell'app.

  5. Selezionare la casella di controllo accanto a Access Mappe di Azure e quindi selezionare Aggiungi autorizzazioni.

    Screenshot che mostra le autorizzazioni per le API dell'app selezionate.

  6. Abilitare l'applicazione Web per chiamare Mappe di Azure API REST configurando la registrazione dell'app con un segreto dell'applicazione. Per i passaggi dettagliati, vedere Un'app Web che chiama le API Web: Registrazione dell'app. Per eseguire l'autenticazione a Microsoft Entra per conto dell'utente, è necessario un segreto. Il certificato o il segreto di registrazione dell'app devono essere archiviati in un archivio sicuro per l'applicazione Web da recuperare per l'autenticazione in Microsoft Entra ID.

    • Questo passaggio può essere ignorato se l'applicazione dispone già di una registrazione dell'app Microsoft Entra e di un segreto configurato.

    Suggerimento

    Se l'applicazione è ospitata in un ambiente Azure, è consigliabile usare identità gestite per le risorse di Azure e un'istanza di Azure Key Vault per accedere ai segreti acquisendo un token di accesso per accedere ai segreti o ai certificati di Azure Key Vault. Per connettersi ad Azure Key Vault per recuperare i segreti, vedere l'esercitazione per connettersi tramite identità gestita.

  7. Implementare un endpoint di token sicuro per l'SDK Web Mappe di Azure per accedere a un token.

    • Per un controller di token di esempio, vedere Mappe di Azure Microsoft Entra ID Samples .For a samples for a sample token controller, see Mappe di Azure Microsoft Entra ID Samples.
    • Per un'implementazione non AspNetCore o un altro, vedere Acquisire il token per l'app dalla documentazione di Microsoft Entra.
    • L'endpoint del token protetto è responsabile della restituzione di un token di accesso per l'utente autenticato e autorizzato a chiamare Mappe di Azure API REST.
  8. Per configurare il controllo degli accessi in base al ruolo di Azure per utenti o gruppi, vedere Concedere l'accesso in base al ruolo per gli utenti.

  9. Configurare la pagina dell'applicazione Web con l'SDK Web Mappe di Azure per accedere all'endpoint del token protetto.

var map = new atlas.Map("map", {
        center: [-122.33, 47.64],
        zoom: 12,
        language: "en-US",
        authOptions: {
            authType: "anonymous",
            clientId: "<insert>",  // azure map account client id
            getToken: function (resolve, reject, map) {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", "/api/token", true); // the url path maps to the token endpoint.
                xhttp.onreadystatechange = function () {
                    if (this.readyState === 4 && this.status === 200) {
                        resolve(this.responseText);
                    } else if (this.status !== 200) {
                        reject(this.responseText);
                    }
                };

                xhttp.send();
            }
        }
    });
    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

Comprendere ulteriormente lo scenario dell'applicazione Web:

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: