Zabezpieczanie aplikacji demona
W tym artykule opisano sposób hostowania aplikacji demona w zaufanym i bezpiecznym środowisku w usłudze Microsoft Azure Maps.
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 Maps
Aby wyświetlić szczegóły uwierzytelniania konta usługi Azure Maps w witrynie Azure Portal:
Zaloguj się w witrynie Azure Portal.
Przejdź do menu witryny Azure Portal. Wybierz pozycję Wszystkie zasoby, a następnie wybierz konto usługi Azure Maps.
W obszarze Ustawienia w okienku po lewej stronie wybierz pozycję Uwierzytelnianie.
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 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 Maps 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 klucza współużytkowanego polega na przekazaniu klucza wygenerowanego przez konto usługi Azure Maps z każdym żądaniem do usługi Azure Maps. 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 Maps (Uwierzytelnianie za pomocą usługi Azure Maps)
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ęć firmy Microsoft Entra, zobacz Authentication with Azure Maps (Uwierzytelnianie za pomocą usługi Azure Maps).
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 Maps 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 Maps wartość usługi Azure Maps 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ływaniu interfejsów API REST usługi Azure Maps.
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 Maps:
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ź ciąg Azure Maps.
Wybierz pozycję Azure Maps.
Zaznacz pole wyboru Uzyskaj dostęp do usługi Azure Maps.
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 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ę.
Żą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 Maps. 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 Maps 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 bruno do utworzenia żądania tokenu, ale możesz użyć innego środowiska deweloperskiego interfejsu API.
Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie.
W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania, taką jak żądanie tokenu POST.
Wybierz metodę GET HTTP z listy rozwijanej Adres URL , a następnie wprowadź następujący adres URL:
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
Uwaga
Wymiana:
{Tenant-ID}
z identyfikatorem katalogu (dzierżawy){Client-ID}
z identyfikatorem aplikacji (klienta){Client-Secret}
w kluczu tajnym klienta.
Wybierz przycisk uruchamiania
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 Maps:
Zapoznaj się z przykładami pokazującymi, jak zintegrować identyfikator entra firmy Microsoft z usługą Azure Maps: