Zabezpieczanie aplikacji jednostronicowej przy użyciu logowania użytkownika
Poniższy przewodnik dotyczy aplikacji hostowanej na serwerze zawartości lub ma minimalne zależności serwera internetowego. Aplikacja zapewnia chronione zasoby zabezpieczone tylko użytkownikom firmy Microsoft Entra. Celem scenariusza jest umożliwienie aplikacji internetowej uwierzytelniania w usłudze Microsoft Entra ID i wywoływanie interfejsów API REST usługi Azure Mapy w imieniu użytkownika.
Aby wyświetlić szczegóły uwierzytelniania konta usługi Azure Mapy w witrynie Azure Portal:
Zaloguj się w witrynie Azure Portal.
Przejdź do menu witryny Azure Portal. Wybierz pozycję Wszystkie zasoby, a następnie wybierz swoje konto usługi Azure Mapy.
W obszarze Ustawienia w okienku po lewej stronie wybierz pozycję Uwierzytelnianie.
Podczas tworzenia konta usługi Azure Mapy są tworzone trzy wartości. Są one używane do obsługi dwóch typów uwierzytelniania w usłudze Azure Mapy:
- 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 Mapy 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 za pomocą klucza współużytkowanego polega na przekazaniu klucza wygenerowanego przez konto usługi Azure Mapy z każdym żądaniem do usługi Azure Mapy. 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 Mapy (Uwierzytelnianie przy użyciu usługi Azure Mapy
Tworzenie rejestracji aplikacji w usłudze Microsoft Entra ID
Utwórz aplikację internetową w identyfikatorze Entra firmy Microsoft, aby użytkownicy się zalogowali. Aplikacja internetowa deleguje dostęp użytkownika do interfejsów API REST usługi Azure Mapy.
W witrynie Azure Portal na liście usług platformy Azure wybierz pozycję Microsoft Entra ID> Rejestracje aplikacji> Nowa rejestracja.
Wprowadź nazwę, wybierz typ konta pomocy technicznej, podaj identyfikator URI przekierowania reprezentujący adres URL, którego identyfikator Entra firmy Microsoft wystawia token i jest adresem URL, w którym jest hostowana kontrolka mapy. Aby uzyskać szczegółowy przykład, zobacz Przykłady identyfikatorów entra firmy Microsoft w usłudze Azure Mapy. Następnie wybierz pozycję Zarejestruj.
Aby przypisać delegowane uprawnienia interfejsu API do usługi Azure Mapy, przejdź do aplikacji. Następnie w obszarze Rejestracje aplikacji wybierz pozycję Uprawnienia>interfejsu API Dodaj uprawnienie. W obszarze Interfejsy API używane przez moją organizację wyszukaj i wybierz pozycję Azure Mapy.
Zaznacz pole wyboru obok pozycji Dostęp do usługi Azure Mapy, a następnie wybierz pozycję Dodaj uprawnienia.
Włącz funkcję
oauth2AllowImplicitFlow
. Aby ją włączyć, w sekcji Manifest rejestracji aplikacji ustaw wartośćoauth2AllowImplicitFlow
true
.Skopiuj identyfikator aplikacji Entra firmy Microsoft i identyfikator dzierżawy firmy Microsoft Entra z rejestracji aplikacji, aby użyć go w zestawie Web SDK. Dodaj szczegóły rejestracji aplikacji Microsoft Entra i z
x-ms-client-id
konta usługi Azure Map do zestawu Web SDK.<link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" /> <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js" /> <script> var map = new atlas.Map("map", { center: [-122.33, 47.64], zoom: 12, language: "en-US", authOptions: { authType: "aad", clientId: "<insert>", // azure map account client id aadAppId: "<insert>", // azure ad app registration id aadTenant: "<insert>", // azure ad tenant id aadInstance: "https://login.microsoftonline.com/" } }); </script>
Konfigurowanie kontroli dostępu opartej na rolach (RBAC) platformy Azure dla użytkowników lub grup. Zapoznaj się z poniższymi sekcjami, aby włączyć kontrolę dostępu opartą na rolach platformy Azure.
Udzielanie użytkownikom dostępu opartego na rolach do usługi Azure Mapy
Kontrolę dostępu opartą na rolach (RBAC) platformy Azure można udzielić, przypisując grupę firmy Microsoft Entra lub podmiot zabezpieczeń do co najmniej jednej definicji roli usługi Azure Mapy.
Aby wyświetlić dostępne definicje ról platformy Azure dla usługi Azure Mapy, zobacz Wyświetlanie wbudowanych definicji ról usługi Azure Mapy.
Aby uzyskać szczegółowe instrukcje dotyczące przypisywania dostępnej roli usługi Azure Mapy 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ć dostępem do aplikacji i zasobów platformy Azure Mapy 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 platformy Azure Mapy zapewniają bardzo duży dostęp autoryzacji do wielu interfejsów API REST usługi Azure Mapy. 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 będzie mogła uzyskiwać dostęp do usługi Azure Mapy.
Następne kroki
Dalsze informacje na temat scenariusza aplikacji jednostronicowej:
Znajdź metryki użycia interfejsu API dla konta usługi Azure Mapy:
Zapoznaj się z przykładami, które pokazują, jak zintegrować identyfikator Entra firmy Microsoft z usługą Azure Mapy: