Så här skyddar du ett ensideswebbprogram med icke-interaktiv inloggning

Skydda ett ensideswebbprogram med Microsoft Entra-ID, även om användaren inte kan logga in på Microsoft Entra-ID.

Skapa det här icke-interaktiva autentiseringsflödet genom att först skapa en säker Webbtjänst för Azure Function som ansvarar för att hämta åtkomsttoken från Microsoft Entra-ID. Den här webbtjänsten är endast tillgänglig för din ensideswebbapp.

Så här visar du autentiseringsinformation för ditt Azure Kartor-konto i Azure-portalen:

  1. Logga in på Azure-portalen.

  2. Gå till Menyn i Azure-portalen. Välj Alla resurser och välj sedan ditt Azure Kartor-konto.

  3. Under Inställningar i den vänstra rutan väljer du Autentisering.

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

Tre värden skapas när Azure Kartor-kontot skapas. De används för att stödja två typer av autentisering i Azure Kartor:

  • Microsoft Entra-autentisering: Client ID Representerar det konto som ska användas för REST API-begäranden. Värdet Client ID ska lagras i programkonfigurationen och sedan ska det hämtas innan Azure Kartor HTTP-begäranden som använder Microsoft Entra-autentisering.
  • Autentisering med delad nyckel: Och Secondary KeyPrimary Key används som prenumerationsnyckel för autentisering med delad nyckel. Autentisering med delad nyckel förlitar sig på att skicka nyckeln som genereras av Azure Kartor-kontot med varje begäran till Azure Kartor. Vi rekommenderar att du regelbundet återskapar dina nycklar. För att underhålla aktuella anslutningar under regenereringen tillhandahålls två nycklar. En nyckel kan användas samtidigt som den andra återskapas. När du återskapar nycklarna måste du uppdatera alla program som använder det här kontot till att använda de nya nycklarna. Mer information finns i Autentisering med Azure Kartor

Dricks

Azure Kartor har stöd för åtkomsttoken från användarinloggning eller interaktiva flöden. Du kan använda interaktiva flöden för ett mer begränsat omfång för återkallande av åtkomst och hemlig hantering.

Skapa en Azure-funktion

Så här skapar du ett skyddat webbtjänstprogram som ansvarar för autentisering till Microsoft Entra-ID:

  1. Skapa en funktion i Azure-portalen. Mer information finns i Komma igång med Azure Functions.

  2. Konfigurera CORS-principen på Azure-funktionen så att den är tillgänglig för ensideswebbappen. CORS-principen skyddar webbläsarklienter till det tillåtna ursprunget för ditt webbprogram. Mer information finns i Lägga till CORS-funktioner.

  3. Lägg till en systemtilldelad identitet i Azure-funktionen för att göra det möjligt att skapa ett tjänsthuvudnamn för att autentisera till Microsoft Entra-ID.

  4. Bevilja rollbaserad åtkomst för den systemtilldelade identiteten till Azure Kartor-kontot. Mer information finns i Bevilja rollbaserad åtkomst.

  5. Skriv kod för Azure-funktionen för att hämta Åtkomsttoken för Azure Kartor med hjälp av systemtilldelad identitet med någon av de mekanismer som stöds eller REST-protokollet. Mer information finns i Hämta token för Azure-resurser.

    Här är ett exempel på ETT REST-protokoll:

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

    Och här är ett exempel på svar:

    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. Konfigurera säkerhet för Azure-funktionen HttpTrigger:

    1. Skapa en funktionsåtkomstnyckel
    2. Säker HTTP-slutpunkt för Azure-funktionen i produktion.
  7. Konfigurera ett webbprogram i Azure Kartor 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));
        });
    

Bevilja rollbaserad åtkomst för användare till Azure Kartor

Du kan bevilja rollbaserad åtkomstkontroll i Azure (Azure RBAC) genom att tilldela en Microsoft Entra-grupp eller säkerhetsobjekt till en eller flera Rolldefinitioner för Azure Kartor.

Information om hur du visar tillgängliga Azure-rolldefinitioner för Azure Kartor finns i Visa inbyggda Rolldefinitioner för Azure Kartor.

Detaljerade anvisningar om hur du tilldelar en tillgänglig Azure Kartor-roll till den skapade hanterade identiteten eller tjänstens huvudnamn finns i Tilldela Azure-roller med hjälp av Azure-portalen

Information om hur du effektivt hanterar Azure Kartor-appen och resursåtkomsten för en stor mängd användare finns i Microsoft Entra-grupper.

Viktigt!

För att användare ska kunna autentisera till ett program måste användarna först skapas i Microsoft Entra-ID. Mer information finns i Lägga till eller ta bort användare med hjälp av Microsoft Entra ID.

Mer information om hur du effektivt hanterar en stor katalog för användare finns i Microsoft Entra-ID.

Varning

Azure Kartor inbyggda rolldefinitioner ger en mycket stor auktoriseringsåtkomst till många Azure Kartor REST-API:er. Information om hur du begränsar API:ernas åtkomst till ett minimum finns i Skapa en anpassad rolldefinition och tilldela den systemtilldelade identiteten till definitionen för anpassad roll. Detta ger den minsta behörighet som krävs för att programmet ska få åtkomst till Azure Kartor.

Nästa steg

Ytterligare förståelse för ett enkelsidigt programscenario:

Hitta API-användningsstatistiken för ditt Azure Kartor-konto:

Utforska andra exempel som visar hur du integrerar Microsoft Entra-ID med Azure Kartor: