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 Kaarten REST API's aan te roepen namens de gebruiker.

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

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 Kaarten REST API's.

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

    A screenshot showing application registration 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 Kaarten REST API's.

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

    A screenshot showing add app API permissions.

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

    A screenshot showing select app API permissions.

  6. Schakel de webtoepassing in om Azure Kaarten REST API's 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 Kaarten Web SDK voor toegang tot een token.

    • Zie Azure Kaarten Voorbeelden van Microsoft Entra-id's 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 Kaarten 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 Kaarten 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 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 het scenario met webtoepassingen:

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

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