Udostępnij za pośrednictwem


Zabezpieczanie aplikacji internetowej przy użyciu logowania użytkownika

Poniższy przewodnik dotyczy aplikacji hostowanej na serwerach internetowych, obsługuje wiele scenariuszy biznesowych i wdraża na serwerach internetowych. Aplikacja ma wymóg zapewnienia chronionych zasobów zabezpieczonych 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

Aby użytkownicy logować się, musisz utworzyć aplikację internetową w identyfikatorze Entra firmy Microsoft. Następnie ta aplikacja internetowa deleguje dostęp użytkowników 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, do którego identyfikator Entra firmy Microsoft wystawia token, czyli adres URL, w którym jest hostowana kontrolka mapy. Aby uzyskać więcej informacji, zobacz Microsoft Entra ID Scenario: Web app that log in users (Scenariusz identyfikatora entra firmy Microsoft: aplikacja internetowa, która loguje użytkowników). Wykonaj podane kroki w scenariuszu firmy Microsoft Entra.

  3. Po zakończeniu rejestracji aplikacji upewnij się, że logowanie aplikacji działa dla użytkowników. Po zakończeniu logowania można udzielić aplikacji delegowanego dostępu do interfejsów API REST usługi Azure Mapy.

  4. Aby przypisać delegowane uprawnienia interfejsu API do usługi Azure Mapy, przejdź do aplikacji i wybierz pozycję Uprawnienia>interfejsu API Dodaj uprawnienie. wybierz pozycję Azure Mapy w interfejsach API, których używa moja organizacja.

    A screenshot showing add app API permissions.

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

    A screenshot showing select app API permissions.

  6. Włącz aplikację internetową, aby wywoływać interfejsy API REST usługi Azure Mapy przez skonfigurowanie rejestracji aplikacji przy użyciu wpisu tajnego aplikacji. Aby uzyskać szczegółowe instrukcje, zobacz Aplikacja internetowa, która wywołuje internetowe interfejsy API: Rejestracja aplikacji. Wpis tajny jest wymagany do uwierzytelniania w usłudze Microsoft Entra w imieniu użytkownika. Certyfikat rejestracji aplikacji lub wpis tajny powinny być przechowywane w bezpiecznym magazynie aplikacji internetowej w celu pobrania w celu uwierzytelnienia w usłudze Microsoft Entra ID.

    • Ten krok może zostać pominięty, jeśli aplikacja ma już skonfigurowaną rejestrację aplikacji Microsoft Entra i wpis tajny.

    Napiwek

    Jeśli aplikacja jest hostowana w środowisku platformy Azure, zalecamy używanie tożsamości zarządzanych dla zasobów platformy Azure i wystąpienia usługi Azure Key Vault w celu uzyskania dostępu do wpisów tajnych przez uzyskanie tokenu dostępu do wpisów tajnych lub certyfikatów usługi Azure Key Vault. Aby nawiązać połączenie z usługą Azure Key Vault w celu pobrania wpisów tajnych, zobacz samouczek dotyczący nawiązywania połączenia za pośrednictwem tożsamości zarządzanej.

  7. Zaimplementuj bezpieczny punkt końcowy tokenu dla zestawu SDK sieci Web usługi Azure Mapy w celu uzyskania dostępu do tokenu.

    • Aby uzyskać przykładowy kontroler tokenu, zobacz Przykłady identyfikatorów entra firmy Microsoft w usłudze Azure Mapy Microsoft.
    • Aby uzyskać implementację inną niż AspNetCore lub inną, zobacz Uzyskiwanie tokenu dla aplikacji z dokumentacji firmy Microsoft Entra.
    • Zabezpieczony punkt końcowy tokenu jest odpowiedzialny za zwrócenie tokenu dostępu dla uwierzytelnionego i autoryzowanego użytkownika w celu wywołania interfejsów API REST usługi Azure Mapy.
  8. Aby skonfigurować kontrolę dostępu opartą na rolach (RBAC) platformy Azure dla użytkowników lub grup, zobacz Udzielanie dostępu opartego na rolach dla użytkowników.

  9. Skonfiguruj stronę aplikacji internetowej przy użyciu zestawu Sdk sieci Web usługi Azure Mapy w celu uzyskania dostępu do punktu końcowego bezpiecznego tokenu.

var map = new atlas.Map("map", {
        center: [-122.33, 47.64],
        zoom: 12,
        language: "en-US",
        authOptions: {
            authType: "anonymous",
            clientId: "<insert>",  // azure map account client id
            getToken: function (resolve, reject, map) {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", "/api/token", true); // the url path maps to the token endpoint.
                xhttp.onreadystatechange = function () {
                    if (this.readyState === 4 && this.status === 200) {
                        resolve(this.responseText);
                    } else if (this.status !== 200) {
                        reject(this.responseText);
                    }
                };

                xhttp.send();
            }
        }
    });
    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 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 internetowej:

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: