Jak zabezpečit jednostránka webové aplikace pomocí neinteraktivních přihlášení

Zabezpečit jednostránkovou webovou aplikaci pomocí Microsoft Entra ID, i když se uživatel nemůže přihlásit k Microsoft Entra ID.

Pokud chcete vytvořit tento neinteraktivní tok ověřování, nejprve vytvořte zabezpečenou webovou službu Azure Functions, která je zodpovědná za získání přístupových tokenů z Microsoft Entra ID. Tato webová služba je výhradně dostupná pouze pro jednu stránku webové aplikace.

Zobrazení podrobností o ověřování účtu Azure Mapy na webu Azure Portal:

  1. Přihlaste se k portálu Azure.

  2. Přejděte do nabídky webu Azure Portal. Vyberte Všechny prostředky a pak vyberte svůj účet Azure Mapy.

  3. V části Nastavení v levém podokně vyberte Ověřování.

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

Při vytvoření účtu Azure Mapy se vytvoří tři hodnoty. Používají se k podpoře dvou typů ověřování v Azure Mapy:

  • Ověřování Microsoft Entra: Představuje Client ID účet, který se má použít pro požadavky rozhraní REST API. Hodnota Client ID by měla být uložená v konfiguraci aplikace a pak by se měla načíst před vytvořením požadavků HTTP, které používají ověřování Microsoft Entra, azure Mapy.
  • Ověřování pomocí sdíleného klíče: Klíč Secondary KeyPrimary Key předplatného se používá pro ověřování pomocí sdíleného klíče. Ověřování pomocí sdíleného klíče spoléhá na předání klíče vygenerovaného účtem Azure Mapy s každou žádostí do Azure Mapy. Doporučujeme pravidelně obnovovat klíče. Pro zachování aktuálních připojení během regenerace jsou k dispozici dva klíče. Při opětovném vygenerování druhého klíče je možné použít jeden klíč. Při každém vygenerování klíče je nutné aktualizovat všechny aplikace, které k tomuto účtu přistupují, aby používaly nový klíč. Další informace najdete v tématu Ověřování pomocí Azure Mapy

Tip

Azure Mapy může podporovat přístupové tokeny z přihlašování uživatelů nebo interaktivních toků. Interaktivní toky můžete použít pro omezenější rozsah odvolání přístupu a správy tajných kódů.

Vytvoření funkce Azure

Vytvoření zabezpečené aplikace webové služby, která je zodpovědná za ověřování v Microsoft Entra ID:

  1. Vytvořte funkci na webu Azure Portal. Další informace najdete v tématu Začínáme se službou Azure Functions.

  2. Nakonfigurujte zásady CORS pro funkci Azure tak, aby byly přístupné jednostrákovou webovou aplikací. Zásady CORS zabezpečují klienty prohlížeče s povolenými zdroji vaší webové aplikace. Další informace najdete v tématu popisujícím přidání funkcí CORS.

  3. Přidejte identitu přiřazenou systémem do funkce Azure, která umožní vytvoření instančního objektu pro ověření v Microsoft Entra ID.

  4. Udělte identitě přiřazené systémem přístup na základě role k účtu Azure Mapy. Další informace naleznete v tématu Udělení přístupu na základě role.

  5. Napište kód pro funkci Azure pro získání přístupových tokenů Azure Mapy pomocí identity přiřazené systémem s jedním z podporovaných mechanismů nebo protokolu REST. Další informace najdete v tématu Získání tokenů pro prostředky Azure.

    Tady je příklad protokolu REST:

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

    A tady je příklad odpovědi:

    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. Konfigurace zabezpečení pro funkci Azure Functions HttpTrigger:

    1. Vytvoření přístupového klíče funkce
    2. Zabezpečení koncového bodu HTTP pro funkci Azure v produkčním prostředí
  7. Nakonfigurujte webovou aplikaci Azure Mapy 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));
        });
    

Udělení přístupu na základě role uživatelům k Azure Mapy

Řízení přístupu na základě role v Azure (Azure RBAC) můžete udělit přiřazením skupiny Microsoft Entra nebo objektu zabezpečení k jedné nebo více definicím rolí Azure Mapy.

Pokud chcete zobrazit dostupné definice rolí Azure pro Azure Mapy, přečtěte si téma Zobrazení předdefinovaných definic rolí Azure Mapy.

Podrobný postup přiřazení dostupné role Azure Mapy vytvořené spravované identitě nebo instančnímu objektu najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.

Pokud chcete efektivně spravovat aplikaci Azure Mapy a přístup k prostředkům velkého množství uživatelů, podívejte se na skupiny Microsoft Entra.

Důležité

Aby se uživatelé mohli ověřovat v aplikaci, musí být uživatelé nejprve vytvořeni v Microsoft Entra ID. Další informace naleznete v tématu Přidání nebo odstranění uživatelů pomocí Microsoft Entra ID.

Informace o efektivní správě velkého adresáře pro uživatele najdete v tématu Microsoft Entra ID.

Upozorňující

Azure Mapy předdefinované definice rolí poskytují velmi velký přístup k autorizaci mnoha rozhraním REST API azure Mapy. Pokud chcete omezit přístup k rozhraním API na minimum, přečtěte si téma Vytvoření vlastní definice role a přiřazení identity přiřazené systémem k definici vlastní role. To umožňuje aplikaci přístup ke službě Azure Mapy s nejnižšími oprávněními.

Další kroky

Další znalost jednostrákového scénáře aplikace:

Vyhledejte metriky využití rozhraní API pro váš účet Azure Mapy:

Prozkoumejte další ukázky, které ukazují, jak integrovat ID Microsoft Entra s Azure Mapy: