Delen via


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 Maps-account weer te geven in Azure Portal:

  1. Meld u aan bij het Azure-portaal.

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

  3. Selecteer Verificatie onder Instellingen in het linkerdeelvenster.

    Schermopname van uw Azure Maps-verificatieopties in Azure Portal.

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

  • 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 HTTP-aanvragen voor Azure Maps 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 door het Azure Maps-account wordt gegenereerd met elke aanvraag naar Azure Maps. 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 Maps voor meer informatie

Tip

Azure Maps 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 Maps-account. Zie Toegang op basis van rollen verlenen voor meer informatie.

  5. Schrijf code voor de Azure-functie om Azure Maps-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 voor Azure Maps 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 Maps

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 Maps-roldefinities.

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

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

Zie Microsoft Entra-groepen om de Azure Maps-app en resourcetoegang van een grote hoeveelheid gebruikers efficiënt te beheren.

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

Ingebouwde azure Maps-roldefinities bieden een zeer grote autorisatietoegang tot veel Azure Maps 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 de minste bevoegdheid nodig om toegang te krijgen tot Azure Maps.

Volgende stappen

Meer informatie over een toepassingsscenario met één pagina:

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

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