Udostępnij za pośrednictwem


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:

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do menu witryny Azure Portal. Wybierz pozycję Wszystkie zasoby, a następnie wybierz swoje konto usługi Azure Mapy.

  3. W obszarze Ustawienia w okienku po lewej stronie wybierz pozycję Uwierzytelnianie.

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

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 i Secondary 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.

  1. W witrynie Azure Portal na liście usług platformy Azure wybierz pozycję Microsoft Entra ID> Rejestracje aplikacji> Nowa rejestracja.

    A screenshot showing application registration in Microsoft Entra ID.

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

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

    Screenshot showing a list of APIs my organization uses.

  4. Zaznacz pole wyboru obok pozycji Dostęp do usługi Azure Mapy, a następnie wybierz pozycję Dodaj uprawnienia.

    Screenshot showing the request app API permissions screen.

  5. Włącz funkcję oauth2AllowImplicitFlow. Aby ją włączyć, w sekcji Manifest rejestracji aplikacji ustaw wartość oauth2AllowImplicitFlow true.

  6. 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>   
    
  7. 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: