Udostępnij przez


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 identyfikatorze Entra firmy Microsoft i wywoływanie interfejsów API REST usługi Azure Maps w imieniu użytkownika.

Aby wyświetlić szczegóły uwierzytelniania konta usługi Azure Maps w witrynie Azure Portal:

  1. Zaloguj się do witryny Azure Portal.

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

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

    Zrzut ekranu przedstawiający opcje uwierzytelniania usługi Azure Maps w witrynie Azure Portal.

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 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 i Secondary Key są używane jako klucz subskrypcji do uwierzytelniania za pomocą klucza współdzielonego. Mechanizm uwierzytelniania klucza współużytkowanego opiera się na przekazywaniu klucza wygenerowanego przez konto Azure Maps z każdym żądaniem do tej usługi. 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. Podczas ponownego generowania kluczy należy zaktualizować wszystkie aplikacje, które uzyskują dostęp do tego konta, aby używały nowych kluczy. Aby uzyskać więcej informacji, zobacz Authentication with Azure Maps (Uwierzytelnianie za pomocą usługi Azure Maps)

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żytkowników do interfejsów API REST usługi Azure Maps.

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

    Zrzut ekranu przedstawiający rejestrację aplikacji w identyfikatorze Entra firmy Microsoft.

  2. Wprowadź nazwę, wybierz typ konta pomocy technicznej, podaj identyfikator URI przekierowania, reprezentujący adres URL, pod którym Microsoft Entra ID wystawia token, a także adres URL, na którym jest hostowana kontrolka mapy. Aby zapoznać się ze szczegółowym przykładem, zobacz przykłady Entra ID dla Azure Maps firmy Microsoft. Następnie wybierz pozycję Zarejestruj.

  3. Aby przypisać delegowane uprawnienia interfejsu API do usługi Azure Maps, 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 Maps.

    Zrzut ekranu przedstawiający listę interfejsów API używanych przez moją organizację.

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

    Zrzut ekranu przedstawiający ekran uprawnień żądania aplikacji do interfejsu API.

  5. Włącz oauth2AllowImplicitFlow. Aby ją włączyć, w sekcji Manifest rejestracji aplikacji ustaw oauth2AllowImplicitFlow na true.

  6. Skopiuj identyfikator aplikacji Microsoft Entra oraz identyfikator dzierżawcy z rejestracji aplikacji, aby użyć ich w SDK sieciowym. Dodaj szczegóły rejestracji aplikacji Microsoft Entra oraz x-ms-client-id z konta Azure Maps 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. Zobacz poniższe sekcje, aby włączyć Azure RBAC.

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

Dalsze kroki

Dalsze informacje na temat scenariusza aplikacji jednostronicowej:

Znajdź metryki użycia interfejsu API dla konta usługi Azure Maps:

Zapoznaj się z przykładami pokazującymi, jak zintegrować identyfikator entra firmy Microsoft z usługą Azure Maps: