Delen via


Een webtoepassing beveiligen met gebruikersaanmelding

De volgende handleiding heeft betrekking op een toepassing die wordt gehost op webservers, onderhoudt meerdere bedrijfsscenario's en implementeert op webservers. De toepassing heeft de vereiste om beveiligde resources alleen te bieden die zijn beveiligd voor Microsoft Entra-gebruikers. Het doel van het scenario is om de webtoepassing in staat te stellen zich te verifiëren bij Microsoft Entra ID en Azure Maps REST API's aan te roepen namens de gebruiker.

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

Een toepassingsregistratie maken in Microsoft Entra-id

U moet de webtoepassing maken in Microsoft Entra ID zodat gebruikers zich kunnen aanmelden. Deze webtoepassing delegeert vervolgens gebruikerstoegang tot Azure Maps REST API's.

  1. Selecteer in Azure Portal, in de lijst met Azure-services, Microsoft Entra-id> App-registraties> Nieuwe registratie.

    Een schermopname van de toepassingsregistratie in Microsoft Entra-id.

  2. Voer een naam in, kies een ondersteuningsaccounttype, geef een omleidings-URI op die de URL vertegenwoordigt waarnaar het token door Microsoft Entra ID wordt opgegeven. Dit is de URL waar het kaartbeheer wordt gehost. Zie Microsoft Entra ID Scenario: Web-app waarmee gebruikers worden aangemeld voor meer informatie. Voer de opgegeven stappen uit het Microsoft Entra-scenario uit.

  3. Zodra de registratie van de toepassing is voltooid, controleert u of de aanmelding van de toepassing werkt voor gebruikers. Zodra de aanmelding werkt, kan de toepassing gedelegeerde toegang krijgen tot Azure Maps REST API's.

  4. Als u gedelegeerde API-machtigingen wilt toewijzen aan Azure Maps, gaat u naar de toepassing en selecteert u API-machtigingen>toevoegen. Selecteer Azure Maps in de API's die door mijn organisatie worden gebruikt .

    Een schermopname met app-API-machtigingen toevoegen.

  5. Schakel het selectievakje naast Access Azure Maps in en selecteer vervolgens Machtigingen toevoegen.

    Een schermopname van de api-machtigingen voor de app selecteren.

  6. Schakel de webtoepassing in om REST API's van Azure Maps aan te roepen door de app-registratie te configureren met een toepassingsgeheim. Zie een web-app die web-API's aanroept: App-registratie. Er is een geheim vereist voor verificatie bij Microsoft Entra namens de gebruiker. Het app-registratiecertificaat of -geheim moet worden opgeslagen in een beveiligd archief voor de webtoepassing die moet worden opgehaald voor verificatie bij Microsoft Entra-id.

    • Deze stap kan worden overgeslagen als de toepassing al een Microsoft Entra-app-registratie en -geheim heeft geconfigureerd.

    Tip

    Als de toepassing wordt gehost in een Azure-omgeving, raden we u aan beheerde identiteiten te gebruiken voor Azure-resources en een Azure Key Vault-exemplaar voor toegang tot geheimen door een toegangstoken te verkrijgen voor toegang tot Azure Key Vault-geheimen of -certificaten. Als u verbinding wilt maken met Azure Key Vault om geheimen op te halen, raadpleegt u de zelfstudie om verbinding te maken via een beheerde identiteit.

  7. Implementeer een beveiligd tokeneindpunt voor de Azure Maps Web SDK voor toegang tot een token.

    • Zie Voorbeelden van Microsoft Entra-id's van Azure Maps voor een voorbeeldtokencontroller.
    • Voor een niet-AspNetCore-implementatie of een andere, raadpleegt u Acquire token voor de app uit de Microsoft Entra-documentatie.
    • Het beveiligde tokeneindpunt is verantwoordelijk voor het retourneren van een toegangstoken voor de geverifieerde en geautoriseerde gebruiker om Azure Maps REST API's aan te roepen.
  8. Als u op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) wilt configureren voor gebruikers of groepen, raadpleegt u op rollen gebaseerde toegang verlenen voor gebruikers.

  9. Configureer de pagina van de webtoepassing met de Azure Maps Web SDK voor toegang tot het eindpunt van het beveiligde token.

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

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 het scenario met webtoepassingen:

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

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