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:
Přihlaste se k portálu Azure.
Přejděte do nabídky webu Azure Portal. Vyberte Všechny prostředky a pak vyberte svůj účet Azure Maps.
V části Nastavení v levém podokně vyberte Ověřování.
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. HodnotaClient 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:
Vytvořte funkci na webu Azure Portal. Další informace najdete v tématu Začínáme se službou Azure Functions.
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.
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.
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.
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": "..." }
Konfigurace zabezpečení pro funkci Azure Functions HttpTrigger:
- Vytvoření přístupového klíče funkce
- Zabezpečení koncového bodu HTTP pro funkci Azure v produkčním prostředí
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: