Sdílet prostřednictvím


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 Maps 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 Maps.

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

    Snímek obrazovky s možnostmi ověřování Azure Maps na webu Azure Portal

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

  • 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žena v konfiguraci aplikace a pak by se měla načíst před vytvořením požadavků HTTP služby Azure Maps, které používají ověřování Microsoft Entra.
  • Ověřování pomocí sdíleného klíče: Klíč Secondary Key Primary 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 Maps s každou žádostí do Azure Maps. 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 Maps.

Tip

Azure Maps podporuje 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 Maps. 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 Maps 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 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));
        });
    

Udělení přístupu na základě role uživatelům službě Azure Maps

Řízení přístupu na základě role 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 role Azure Maps.

Informace o dostupných definicích rolí Azure pro Azure Maps najdete v tématu Zobrazení předdefinovaných definic rolí Azure Maps.

Podrobný postup přiřazení dostupné role Azure Maps k 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 Maps 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í

Předdefinované definice rolí služby Azure Maps poskytují velmi rozsáhlý přístup k autorizaci mnoha rozhraním REST API služby Azure Maps. 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 Maps s nejnižšími oprávněními nezbytnými.

Další kroky

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

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

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