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:
Meld u aan bij het Azure-portaal.
Navigeer naar het menu van Azure Portal. Selecteer Alle resources en selecteer vervolgens uw Azure Maps-account.
Selecteer Verificatie onder Instellingen in het linkerdeelvenster.
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. DeClient 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
enSecondary 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:
Maak een functie in Azure Portal. Zie Aan de slag met Azure Functions voor meer informatie.
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.
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.
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.
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": "..." }
Configureer beveiliging voor de Azure-functie HttpTrigger:
- Een functietoegangssleutel maken
- Beveiligd HTTP-eindpunt voor de Azure-functie in productie.
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 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: