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:
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
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:
- Tworzenie usługi Azure Key Vault.
- 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.
- 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. - Tymczasowo przypisz dostęp do uprawnień wpisów tajnych
set
jako deweloper. - Ustaw klucz wspólny w wpisach tajnych usługi Key Vault i odwołuj się do identyfikatora wpisu tajnego jako konfiguracji dla aplikacji demona.
- Usuń uprawnienia do wpisów tajnych
set
. - Aby pobrać klucz tajny klucza wspólnego z usługi Azure Key Vault, zaimplementuj uwierzytelnianie microsoft Entra w aplikacji demona.
- 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:
Zaloguj się w witrynie Azure Portal.
Wybierz Microsoft Entra ID.
W obszarze Zarządzaj w okienku po lewej stronie wybierz pozycję Rejestracje aplikacji.
Wybierz kartę + Nowa rejestracja .
Wprowadź nazwę, a następnie wybierz typ konta pomocy technicznej.
Wybierz pozycję Zarejestruj.
Przypisywanie delegowanych uprawnień interfejsu API
Aby przypisać delegowane uprawnienia interfejsu API do usługi Azure Mapy:
Jeśli jeszcze tego nie zrobiono, zaloguj się do witryny Azure Portal.
Wybierz Microsoft Entra ID.
W obszarze Zarządzaj w okienku po lewej stronie wybierz pozycję Rejestracje aplikacji.
Wybierz aplikację.
W obszarze Zarządzanie w okienku po lewej stronie wybierz pozycję Uprawnienia interfejsu API.
Wybierz Dodaj uprawnienie.
Wybierz kartę Interfejsy API używane przez moją organizację.
W polu wyszukiwania wprowadź azure Mapy.
Wybierz pozycję Azure Mapy.
Zaznacz pole wyboru Uzyskaj dostęp do usługi Azure Mapy.
Wybierz Przyznaj uprawnienia.
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:
W obszarze Zarządzanie w okienku po lewej stronie wybierz pozycję Certyfikaty i wpisy tajne.
Wybierz pozycję Przekaż certyfikat.
Po prawej stronie pola tekstowego wybierz ikonę pliku.
Wybierz plik crt, cer lub pem, a następnie wybierz pozycję Dodaj.
Tworzenie wpisu tajnego klienta
Aby utworzyć klucz tajny klienta:
W obszarze Zarządzanie w okienku po lewej stronie wybierz pozycję Certyfikaty i wpisy tajne.
Wybierz pozycję + Nowe wpisy tajne klienta.
Wprowadź opis klucza tajnego klienta.
Wybierz Dodaj.
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.
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:
Jeśli jeszcze tego nie zrobiono, zaloguj się do witryny Azure Portal.
Wybierz Microsoft Entra ID.
W obszarze Zarządzaj w okienku po lewej stronie wybierz pozycję Rejestracje aplikacji.
Wybierz aplikację.
Powinna zostać wyświetlona strona Przegląd. Skopiuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy).
W tym artykule użyto aplikacji Postman do utworzenia żądania tokenu, ale możesz użyć innego środowiska deweloperskiego interfejsu API.
W aplikacji Postman wybierz pozycję Nowy.
W oknie Tworzenie nowego wybierz pozycję Żądanie HTTP.
Wprowadź nazwę żądania dla żądania, taką jak żądanie tokenu POST.
Wybierz metodę POST HTTP.
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
Wybierz pozycję Wyślij
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: