Jak zabezpieczyć jednostronicową aplikację internetową przy użyciu logowania nieinterakcyjnego
Zabezpiecz jednostronicową aplikację internetową przy użyciu identyfikatora Entra firmy Microsoft, nawet jeśli użytkownik nie może zalogować się do identyfikatora Entra firmy Microsoft.
Aby utworzyć ten nieinterakcyjny przepływ uwierzytelniania, najpierw utwórz bezpieczną usługę internetową funkcji platformy Azure, która jest odpowiedzialna za uzyskiwanie tokenów dostępu z identyfikatora Entra firmy Microsoft. Ta usługa internetowa jest dostępna wyłącznie dla jednostronicowej aplikacji internetowej.
Aby wyświetlić szczegóły uwierzytelniania konta usługi Azure Maps w witrynie Azure Portal:
Zaloguj się w witrynie Azure Portal.
Przejdź do menu witryny Azure Portal. Wybierz pozycję Wszystkie zasoby, a następnie wybierz konto usługi Azure Maps.
W obszarze Ustawienia w okienku po lewej stronie wybierz pozycję Uwierzytelnianie.
Podczas tworzenia konta usługi Azure Maps są tworzone trzy wartości. Są one używane do obsługi dwóch typów uwierzytelniania w usłudze Azure Maps:
- Uwierzytelnianie Firmy Microsoft Entra:
Client ID
reprezentuje konto, które ma być używane na potrzeby żądań interfejsu API REST. WartośćClient ID
powinna być przechowywana w konfiguracji aplikacji, a następnie należy ją pobrać przed wykonaniem żądań HTTP usługi Azure Maps korzystających z uwierzytelniania Microsoft Entra. - Uwierzytelnianie za pomocą klucza współdzielonego:
Primary Key
element iSecondary Key
jest używany jako klucz subskrypcji do uwierzytelniania klucza współdzielonego. Uwierzytelnianie klucza współużytkowanego polega na przekazaniu klucza wygenerowanego przez konto usługi Azure Maps z każdym żądaniem do usługi Azure Maps. Zalecamy regularne ponowne generowanie kluczy. Aby zachować bieżące połączenia podczas rewitalizacji, dostępne są dwa klucze. Jeden klucz może być używany, a drugi jest ponownie wygenerowany. Po ponownym wygenerowaniu kluczy należy zaktualizować wszystkie aplikacje uzyskujące dostęp do tego konta pod kątem używania nowych kluczy. Aby uzyskać więcej informacji, zobacz Authentication with Azure Maps (Uwierzytelnianie za pomocą usługi Azure Maps)
Napiwek
Usługa Azure Maps może obsługiwać tokeny dostępu z poziomu przepływów logowania użytkownika lub interakcyjnych. Możesz użyć przepływów interaktywnych do bardziej ograniczonego zakresu odwołania dostępu i zarządzania wpisami tajnymi.
Tworzenie funkcji platformy Azure
Aby utworzyć zabezpieczoną aplikację usługi internetowej odpowiedzialną za uwierzytelnianie do identyfikatora Entra firmy Microsoft:
Utwórz funkcję w witrynie Azure Portal. Aby uzyskać więcej informacji, zobacz Wprowadzenie do usługi Azure Functions.
Skonfiguruj zasady MECHANIZMU CORS w funkcji platformy Azure, aby były dostępne dla jednostronicowej aplikacji internetowej. Zasady MECHANIZMU CORS zabezpieczają klientów przeglądarki przed dozwolonymi źródłami aplikacji internetowej. Aby uzyskać więcej informacji, zobacz Dodawanie funkcji obsługi mechanizmu CORS.
Dodaj tożsamość przypisaną przez system w funkcji platformy Azure, aby umożliwić tworzenie jednostki usługi w celu uwierzytelnienia w usłudze Microsoft Entra ID.
Udziel dostępu opartego na rolach dla tożsamości przypisanej przez system do konta usługi Azure Maps. Aby uzyskać więcej informacji, zobacz Udzielanie dostępu opartego na rolach.
Napisz kod dla funkcji platformy Azure, aby uzyskać tokeny dostępu usługi Azure Maps przy użyciu tożsamości przypisanej przez system z jednym z obsługiwanych mechanizmów lub protokołu REST. Aby uzyskać więcej informacji, zobacz Uzyskiwanie tokenów dla zasobów platformy Azure.
Oto przykładowy protokół REST:
GET /MSI/token?resource=https://atlas.microsoft.com/&api-version=2019-08-01 HTTP/1.1 Host: localhost:4141
Oto przykładowa odpowiedź:
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": "..." }
Skonfiguruj zabezpieczenia funkcji platformy Azure HttpTrigger:
- Tworzenie klucza dostępu funkcji
- Zabezpieczanie punktu końcowego HTTP dla funkcji platformy Azure w środowisku produkcyjnym.
Skonfiguruj aplikację internetową 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)); });
Udzielanie użytkownikom dostępu opartego na rolach do usługi Azure Maps
Kontrolę dostępu opartą na rolach (RBAC) platformy Azure można przyznać, przypisując grupę firmy Microsoft Entra lub podmiot zabezpieczeń do co najmniej jednej definicji roli usługi Azure Maps.
Aby wyświetlić dostępne definicje ról platformy Azure dla usługi Azure Maps, zobacz Wyświetlanie wbudowanych definicji ról usługi Azure Maps.
Aby uzyskać szczegółowe instrukcje dotyczące przypisywania dostępnej roli usługi Azure Maps do utworzonej tożsamości zarządzanej lub jednostki usługi, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal
Aby efektywnie zarządzać aplikacją usługi Azure Maps i dostępem do zasobów dużej liczby użytkowników, zobacz Grupy firmy Microsoft Entra.
Ważne
Aby użytkownicy mogli uwierzytelniać się w aplikacji, należy najpierw utworzyć użytkowników w identyfikatorze Entra firmy Microsoft. Aby uzyskać więcej informacji, zobacz Dodawanie lub usuwanie użytkowników przy użyciu usługi Microsoft Entra ID.
Aby dowiedzieć się, jak skutecznie zarządzać dużym katalogiem dla użytkowników, zobacz Microsoft Entra ID.
Ostrzeżenie
Wbudowane definicje ról usługi Azure Maps zapewniają bardzo duży dostęp autoryzacji do wielu interfejsów API REST usługi Azure Maps. Aby ograniczyć dostęp interfejsów API do minimum, zobacz tworzenie niestandardowej definicji roli i przypisywanie tożsamości przypisanej przez system do niestandardowej definicji roli. Dzięki temu aplikacja może uzyskiwać dostęp do usługi Azure Maps z najniższymi uprawnieniami wymaganymi przez aplikację.
Następne kroki
Dalsze informacje na temat scenariusza aplikacji jednostronicowej:
Znajdź metryki użycia interfejsu API dla konta usługi Azure Maps:
Zapoznaj się z innymi przykładami, które pokazują, jak zintegrować identyfikator entra firmy Microsoft z usługą Azure Maps: