Zabezpieczanie aplikacji demona

W tym artykule opisano sposób hostowania aplikacji demona w zaufanym i bezpiecznym środowisku na platformie Microsoft Azure Mapy.

Poniżej przedstawiono przykłady aplikacji demona:

  • Zadanie internetowe platformy Azure
  • Aplikacja funkcji platformy Azure
  • Usługa systemu Windows
  • Uruchomiona i niezawodna usługa w tle

Wyświetlanie szczegółów uwierzytelniania usługi Azure Mapy

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

Ważne

W przypadku aplikacji produkcyjnych zalecamy zaimplementowanie identyfikatora Entra firmy Microsoft i kontroli dostępu opartej na rolach platformy Azure (Azure RBAC). Aby zapoznać się z omówieniem pojęć związanych z firmą Microsoft Entra, zobacz Authentication with Azure Mapy (Uwierzytelnianie przy użyciu usługi Azure Mapy).

Scenariusz: uwierzytelnianie za pomocą klucza współużytkowanego w usłudze Azure Key Vault

Aplikacje korzystające z uwierzytelniania za pomocą klucza wspólnego powinny przechowywać klucze w bezpiecznym magazynie. W tym scenariuszu opisano sposób bezpiecznego przechowywania klucza aplikacji jako wpisu tajnego w usłudze Azure Key Vault. Zamiast przechowywać klucz wspólny w konfiguracji aplikacji, aplikacja może pobrać klucz wspólny jako wpis tajny usługi Azure Key Vault. Aby uprościć regeneruj klucz, zalecamy, aby aplikacje używały jednego klucza naraz. Aplikacje mogą następnie ponownie wygenerować nieużywany klucz i wdrożyć ponownie wygenerowany klucz w usłudze Azure Key Vault, zachowując bieżące połączenia z jednym kluczem. Aby dowiedzieć się, jak skonfigurować usługę Azure Key Vault, zobacz Przewodnik dewelopera usługi Azure Key Vault.

Ważne

Ten scenariusz pośrednio uzyskuje dostęp do identyfikatora Entra firmy Microsoft za pośrednictwem usługi Azure Key Vault. Zalecamy jednak bezpośrednie użycie uwierzytelniania firmy Microsoft Entra. Korzystanie z identyfikatora Entra firmy Microsoft bezpośrednio pozwala uniknąć dodatkowych złożoności i wymagań operacyjnych dotyczących korzystania z uwierzytelniania za pomocą klucza współużytkowanego i konfigurowania usługi Key Vault.

W poniższych krokach opisano ten proces:

  1. Tworzenie usługi Azure Key Vault.
  2. Utwórz jednostkę usługi Microsoft Entra, tworząc rejestrację aplikacji lub tożsamość zarządzaną. Utworzony podmiot zabezpieczeń jest odpowiedzialny za uzyskiwanie dostępu do usługi Azure Key Vault.
  3. Przypisz jednostce usługi dostęp do uprawnień wpisów tajnych klucza platformy get Azure. Aby uzyskać szczegółowe informacje na temat ustawiania uprawnień, zobacz Przypisywanie zasad dostępu usługi Key Vault przy użyciu witryny Azure Portal.
  4. Tymczasowo przypisz dostęp do uprawnień wpisów tajnych set jako deweloper.
  5. Ustaw klucz wspólny w wpisach tajnych usługi Key Vault i odwołuj się do identyfikatora wpisu tajnego jako konfiguracji dla aplikacji demona.
  6. Usuń uprawnienia do wpisów tajnych set .
  7. Aby pobrać klucz tajny klucza wspólnego z usługi Azure Key Vault, zaimplementuj uwierzytelnianie microsoft Entra w aplikacji demona.
  8. Utwórz żądanie interfejsu API REST usługi Azure Mapy przy użyciu klucza współużytkowanego. Teraz aplikacja demona może pobrać klucz wspólny z usługi Key Vault.

Napiwek

Jeśli aplikacja jest hostowana w środowisku platformy Azure, zalecamy użycie tożsamości zarządzanej w celu zmniejszenia kosztów i złożoności zarządzania wpisem tajnym na potrzeby uwierzytelniania. Aby dowiedzieć się, jak skonfigurować tożsamość zarządzaną, zobacz Samouczek: łączenie usługi Key Vault z aplikacją internetową platformy Azure na platformie .NET przy użyciu tożsamości zarządzanej.

Scenariusz: Microsoft Entra kontrola dostępu oparta na rolach

Po utworzeniu konta usługi Azure Mapy wartość azure Mapy Client ID jest obecna na stronie szczegółów uwierzytelniania w witrynie Azure Portal. Ta wartość reprezentuje konto, które ma być używane na potrzeby żądań interfejsu API REST. Ta wartość powinna być przechowywana w konfiguracji aplikacji i pobierana przed wykonaniem żądań HTTP. Celem scenariusza jest umożliwienie aplikacji demona uwierzytelniania w identyfikatorze Entra firmy Microsoft i wywołaniu interfejsów API REST usługi Azure Mapy.

Napiwek

Aby włączyć zalety składników tożsamości zarządzanej, zalecamy hostowanie w usłudze Azure Virtual Machines, zestawach skalowania maszyn wirtualnych lub usługach App Services.

Hostowanie demona w zasobach platformy Azure

W przypadku uruchamiania w zasobach platformy Azure można skonfigurować tożsamości zarządzane platformy Azure, aby umożliwić niskie koszty i minimalne nakłady pracy związane z zarządzaniem poświadczeniami.

Aby włączyć dostęp aplikacji do tożsamości zarządzanej, zobacz Omówienie tożsamości zarządzanych.

Niektóre korzyści z tożsamości zarządzanej to:

  • Uwierzytelnianie kryptograficzne certyfikatu X509 zarządzanego przez system platformy Azure.
  • Zabezpieczenia firmy Microsoft z certyfikatami X509 zamiast wpisów tajnych klienta.
  • Platforma Azure zarządza i odnawia wszystkie certyfikaty skojarzone z zasobem tożsamości zarządzanej.
  • Zarządzanie operacjami poświadczeń jest uproszczone, ponieważ tożsamość zarządzana eliminuje konieczność korzystania z zabezpieczonej usługi magazynu wpisów tajnych, takich jak usługa Azure Key Vault.

Hostowanie demona w zasobach spoza platformy Azure

Tożsamości zarządzane są dostępne tylko w przypadku uruchamiania w środowisku platformy Azure. W związku z tym należy skonfigurować jednostkę usługi za pośrednictwem rejestracji aplikacji Entra firmy Microsoft dla aplikacji demona.

Tworzenie nowej rejestracji aplikacji

Jeśli rejestracja aplikacji została już utworzona, przejdź do sekcji Przypisywanie delegowanych uprawnień interfejsu API.

Aby utworzyć nową rejestrację aplikacji:

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz Microsoft Entra ID.

  3. W obszarze Zarządzaj w okienku po lewej stronie wybierz pozycję Rejestracje aplikacji.

  4. Wybierz kartę + Nowa rejestracja .

    A screenshot showing application registration in Microsoft Entra ID.

  5. Wprowadź nazwę, a następnie wybierz typ konta pomocy technicznej.

    Create app registration.

  6. Wybierz pozycję Zarejestruj.

Przypisywanie delegowanych uprawnień interfejsu API

Aby przypisać delegowane uprawnienia interfejsu API do usługi Azure Mapy:

  1. Jeśli jeszcze tego nie zrobiono, zaloguj się do witryny Azure Portal.

  2. Wybierz Microsoft Entra ID.

  3. W obszarze Zarządzaj w okienku po lewej stronie wybierz pozycję Rejestracje aplikacji.

  4. Wybierz aplikację.

    Select app registrations.

  5. W obszarze Zarządzanie w okienku po lewej stronie wybierz pozycję Uprawnienia interfejsu API.

  6. Wybierz Dodaj uprawnienie.

    Add app permission.

  7. Wybierz kartę Interfejsy API używane przez moją organizację.

  8. W polu wyszukiwania wprowadź azure Mapy.

  9. Wybierz pozycję Azure Mapy.

    Request app permission.

  10. Zaznacz pole wyboru Uzyskaj dostęp do usługi Azure Mapy.

  11. Wybierz Przyznaj uprawnienia.

    Select app API permissions.

Tworzenie wpisu tajnego klienta lub konfigurowanie certyfikatu

Aby zaimplementować uwierzytelnianie oparte na serwerze lub aplikacji w aplikacji, możesz wybrać jedną z dwóch opcji:

  • Przekaż certyfikat klucza publicznego.
  • Utwórz klucz tajny klienta.
Przekazywanie certyfikatu klucza publicznego

Aby przekazać certyfikat klucza publicznego:

  1. W obszarze Zarządzanie w okienku po lewej stronie wybierz pozycję Certyfikaty i wpisy tajne.

  2. Wybierz pozycję Przekaż certyfikat. Upload certificate.

  3. Po prawej stronie pola tekstowego wybierz ikonę pliku.

  4. Wybierz plik crt, cer lub pem, a następnie wybierz pozycję Dodaj.

    Upload certificate file.

Tworzenie wpisu tajnego klienta

Aby utworzyć klucz tajny klienta:

  1. W obszarze Zarządzanie w okienku po lewej stronie wybierz pozycję Certyfikaty i wpisy tajne.

  2. Wybierz pozycję + Nowe wpisy tajne klienta.

    New client secret.

  3. Wprowadź opis klucza tajnego klienta.

  4. Wybierz Dodaj.

    Add new client secret.

  5. Skopiuj wpis tajny i zapisz go bezpiecznie w usłudze, takiej jak Azure Key Vault. Ponadto użyj wpisu tajnego w sekcji Żądanie tokenu z tożsamością zarządzaną w tym artykule.

    Copy client secret.

    Ważne

    Aby bezpiecznie przechowywać certyfikat lub wpis tajny, zobacz Przewodnik dewelopera usługi Azure Key Vault. Użyjesz tego wpisu tajnego, aby uzyskać tokeny z identyfikatora Entra firmy Microsoft.

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.

Żądanie tokenu z tożsamością zarządzaną

Po skonfigurowaniu tożsamości zarządzanej dla zasobu hostingu można użyć zestawu Azure SDK lub interfejsu API REST do uzyskania tokenu dla usługi Azure Mapy. Aby dowiedzieć się, jak uzyskać token dostępu, zobacz Uzyskiwanie tokenu dostępu.

Żądanie tokenu z rejestracją aplikacji

Po zarejestrowaniu aplikacji i skojarzeniu jej z usługą Azure Mapy należy zażądać tokenu dostępu.

Aby uzyskać token dostępu:

  1. Jeśli jeszcze tego nie zrobiono, zaloguj się do witryny Azure Portal.

  2. Wybierz Microsoft Entra ID.

  3. W obszarze Zarządzaj w okienku po lewej stronie wybierz pozycję Rejestracje aplikacji.

  4. Wybierz aplikację.

  5. Powinna zostać wyświetlona strona Przegląd. Skopiuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy).

    Copy token parameters.

W tym artykule użyto aplikacji Postman do utworzenia żądania tokenu, ale możesz użyć innego środowiska deweloperskiego interfejsu API.

  1. W aplikacji Postman wybierz pozycję Nowy.

  2. W oknie Tworzenie nowego wybierz pozycję Żądanie HTTP.

  3. Wprowadź nazwę żądania dla żądania, taką jak żądanie tokenu POST.

  4. Wybierz metodę POST HTTP.

  5. Wprowadź następujący adres URL na pasku adresu (zastąp {Tenant-ID} ciąg identyfikatorem katalogu (dzierżawy), identyfikatorem {Client-ID} aplikacji (klienta) i {Client-Secret} wpisem tajnym klienta:

    https://login.microsoftonline.com/{Tenant-ID}/oauth2/v2.0/token?response_type=token&grant_type=client_credentials&client_id={Client-ID}&client_secret={Client-Secret}&scope=https://atlas.microsoft.com/.default
    
  6. Wybierz pozycję Wyślij

  7. Powinna zostać wyświetlona następująca odpowiedź JSON:

{
    "token_type": "Bearer",
    "expires_in": 86399,
    "ext_expires_in": 86399,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFq..."
}

Aby uzyskać więcej informacji na temat przepływu uwierzytelniania, zobacz Przepływ poświadczeń klienta OAuth 2.0 w Platforma tożsamości Microsoft

Następne kroki

Aby uzyskać bardziej szczegółowe przykłady:

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: