Een webtoepassing met één pagina beveiligen met niet-interactieve aanmelding

Beveilig een webtoepassing met één pagina met Microsoft Entra ID, zelfs als de gebruiker zich niet kan aanmelden bij Microsoft Entra ID.

Als u deze niet-interactieve verificatiestroom wilt maken, maakt u eerst een beveiligde Azure-functie-webservice die verantwoordelijk is voor het verkrijgen van toegangstokens van Microsoft Entra ID. Deze webservice is uitsluitend beschikbaar voor uw webtoepassing met één pagina.

Ga als volgende te werk om de verificatiegegevens van uw Azure Kaarten-account weer te geven in Azure Portal:

  1. Meld u aan bij de Azure-portal.

  2. Navigeer naar het menu van Azure Portal. Selecteer Alle resources en selecteer vervolgens uw Azure Kaarten-account.

  3. Selecteer Verificatie onder Instellingen in het linkerdeelvenster.

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

Er worden drie waarden gemaakt wanneer het Azure Kaarten-account wordt gemaakt. Ze worden gebruikt ter ondersteuning van twee typen verificatie in Azure Kaarten:

  • Microsoft Entra-verificatie: Het Client ID vertegenwoordigt het account dat moet worden gebruikt voor REST API-aanvragen. De Client ID waarde moet worden opgeslagen in de toepassingsconfiguratie en vervolgens moet deze worden opgehaald voordat u Azure Kaarten HTTP-aanvragen maakt die gebruikmaken van Microsoft Entra-verificatie.
  • Gedeelde sleutelverificatie: de Primary Key en Secondary Key worden gebruikt als de abonnementssleutel voor verificatie met gedeelde sleutels. Verificatie met gedeelde sleutels is afhankelijk van het doorgeven van de sleutel die is gegenereerd door het Azure Kaarten-account met elke aanvraag aan Azure Kaarten. U wordt aangeraden uw sleutels regelmatig opnieuw te genereren. Om de huidige verbindingen tijdens de regeneratie te behouden, worden er twee sleutels opgegeven. De ene sleutel kan in gebruik zijn en de andere sleutel opnieuw genereren. Als u de sleutels opnieuw genereert, dient u elke toepassing bij te werken die toegang heeft tot dit account om de nieuwe sleutels te kunnen gebruiken. Zie Verificatie met Azure Kaarten voor meer informatie

Tip

Azure Kaarten biedt ondersteuning voor toegangstokens van gebruikersaanmelding of interactieve stromen. U kunt interactieve stromen gebruiken voor een beperkter bereik van toegangsintrekking en geheimbeheer.

Een Azure-functie maken

Een beveiligde webservicetoepassing maken die verantwoordelijk is voor verificatie bij Microsoft Entra-id:

  1. Maak een functie in Azure Portal. Zie Aan de slag met Azure Functions voor meer informatie.

  2. Configureer CORS-beleid op de Azure-functie om toegankelijk te zijn voor de webtoepassing met één pagina. Het CORS-beleid beveiligt browserclients naar de toegestane oorsprong van uw webtoepassing. Zie CORS-functionaliteit toevoegen voor meer informatie.

  3. Voeg een door het systeem toegewezen identiteit toe aan de Azure-functie om het maken van een service-principal mogelijk te maken voor verificatie bij Microsoft Entra-id.

  4. Op rollen gebaseerde toegang verlenen voor de door het systeem toegewezen identiteit aan het Azure Kaarten-account. Zie Toegang op basis van rollen verlenen voor meer informatie.

  5. Schrijf code voor de Azure-functie om Azure Kaarten toegangstokens te verkrijgen met behulp van door het systeem toegewezen identiteit met een van de ondersteunde mechanismen of het REST-protocol. Zie Tokens verkrijgen voor Azure-resources voor meer informatie.

    Hier volgt een voorbeeld van een REST-protocol:

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

    En hier volgt een voorbeeldantwoord:

    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. Configureer beveiliging voor de Azure-functie HttpTrigger:

    1. Een functietoegangssleutel maken
    2. Beveiligd HTTP-eindpunt voor de Azure-functie in productie.
  7. Een webtoepassing configureren in Azure Kaarten Web SDK.

    //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));
        });
    

Op rollen gebaseerde toegang verlenen aan gebruikers aan Azure Kaarten

U kunt op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) verlenen door een Microsoft Entra-groep of beveiligingsprincipaal toe te wijzen aan een of meer Azure Kaarten roldefinities.

Zie Ingebouwde Azure Kaarten-roldefinities weergeven om de beschikbare Azure-roldefinities voor Azure Kaarten weer te geven.

Zie Azure-rollen toewijzen met behulp van Azure Portal voor gedetailleerde stappen over het toewijzen van een beschikbare Azure-Kaarten-rol aan de gemaakte beheerde identiteit of de service-principal.

Als u de Azure Kaarten-app en resourcetoegang van een grote hoeveelheid gebruikers efficiënt wilt beheren, raadpleegt u Microsoft Entra-groepen.

Belangrijk

Als gebruikers zich mogen verifiëren bij een toepassing, moeten de gebruikers eerst worden gemaakt in Microsoft Entra-id. Zie Gebruikers toevoegen of verwijderen met behulp van Microsoft Entra ID voor meer informatie.

Zie Microsoft Entra-id voor meer informatie over het effectief beheren van een grote map voor gebruikers.

Waarschuwing

Azure Kaarten ingebouwde roldefinities bieden een zeer grote autorisatietoegang tot veel Azure Kaarten REST API's. Zie Een aangepaste roldefinitie maken en de door het systeem toegewezen identiteit toewijzen aan de aangepaste roldefinitie om de toegang tot API's tot een minimum te beperken. Hierdoor heeft de toepassing toegang tot Azure Kaarten met minimale bevoegdheden.

Volgende stappen

Meer informatie over een toepassingsscenario met één pagina:

Zoek de metrische gegevens over API-gebruik voor uw Azure Kaarten-account:

Bekijk andere voorbeelden die laten zien hoe u Microsoft Entra ID integreert met Azure Kaarten: