Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera szczegółowe wskazówki dla deweloperów i administratorów dotyczące konfigurowania bezpiecznego uwierzytelniania aplikacji i dostępu do firmy Microsoft Planetary Computer Pro. Stosując identyfikator Entra firmy Microsoft i tożsamości zarządzane, aplikacje mogą bezproblemowo uwierzytelniać się bez zarządzania poświadczeniami, zapewniając bezpieczną interakcję z zasobami Planetary Computer Pro. Niezależnie od tego, czy aplikacja działa na platformie Azure, czy w innych środowiskach, ten przewodnik zawiera opis niezbędnych konfiguracji, w tym kontroli dostępu opartej na rolach (RBAC) i uzyskiwania tokenów w celu umożliwienia bezpiecznego dostępu.
Uwaga / Notatka
W przypadku aplikacji korzystających z Azure AD B2C lub Microsoft Entra External ID obsługujących funkcje, takie jak dostawcy tożsamości społecznościowych, aplikacje muszą nadal używać tych rozwiązań tożsamości do pośredniczenia w ruchu uwierzytelniania, ponieważ Planetary Computer Pro nie obsługuje alternatyw dla uwierzytelniania Microsoft Entra ID.
Opcje uwierzytelniania i zalecenia
W poniższej tabeli przedstawiono podsumowanie zalecanego podejścia do uwierzytelniania na podstawie miejsca działania aplikacji i sposobu uzyskiwania dostępu do zasobów:
| Środowisko hostingu aplikacji | Wymagany typ dostępu | Zalecany typ tożsamości | Explanation |
|---|---|---|---|
| Uruchomione na platformie Azure (maszyna wirtualna, usługa App Service, funkcje, aplikacje kontenera itp.) | App-Only (aplikacja działa jako sama) | Tożsamość zarządzana (zalecana przez użytkownika) | Zabezpieczenia i możliwości zarządzania: Eliminuje konieczność przechowywania poświadczeń (wpisów tajnych lub certyfikatów) i zarządzania nimi w kodzie lub konfiguracji. Platforma Azure automatycznie obsługuje rotację poświadczeń. Przypisana przez użytkownika jest preferowana do udostępniania wielu zasobów. |
| Uruchomione na platformie Azure (maszyna wirtualna, usługa App Service, funkcje, aplikacje kontenera itp.) | Delegowane (aplikacja działa w imieniu użytkownika) | Tożsamość zarządzana (zalecana przez użytkownika) | Korzysta z integracji z platformą Azure: Łączy zalety zabezpieczeń tożsamości zarządzanej dla samej aplikacji z przepływami uwierzytelniania użytkowników standardowych. Upraszcza konfigurowanie infrastruktury na platformie Azure. |
| Uruchamianie poza platformą Azure (lokalna, inna chmura, maszyna dewelopera) | App-Only (aplikacja działa jako sama) | Podmiot usługi | Standardowa dla aplikacji zewnętrznych: Ustanowiona metoda uwierzytelniania aplikacji spoza platformy Azure przy użyciu identyfikatora Entra firmy Microsoft. Wymaga bezpiecznego zarządzania poświadczeniami (wpisami tajnymi lub certyfikatami). |
| Uruchamianie poza platformą Azure (lokalna, inna chmura, maszyna dewelopera) | Delegowane (aplikacja działa w imieniu użytkownika) | Podmiot usługi | Standardowa dla aplikacji zewnętrznych: Umożliwia standardowe przepływy protokołu OAuth 2.0 na potrzeby logowania użytkownika i wyrażania zgody dla aplikacji spoza platformy Azure przy użyciu zarejestrowanej tożsamości aplikacji w identyfikatorze Entra. |
| Uruchamianie poza platformą Azure (alternatywna) | App-Only lub delegowane | Zarządzana Tożsamość | Przynosi korzyści platformy Azure: Hostując aplikację w usłudze obliczeniowej platformy Azure (takiej jak maszyna wirtualna lub aplikacja kontenera), może używać zwiększonych zabezpieczeń i możliwości zarządzania tożsamościami zarządzanymi, unikając zarządzania poświadczeniami, nawet jeśli źródło może być uznawane za nienależące do platformy Azure. |
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją — utwórz bezpłatne konto
- Istniejący zasób GeoCatalog.
Aplikacje uruchomione na platformie Azure
W przypadku aplikacji działających na platformie Azure zalecamy utworzenie typu tożsamości Entra firmy Microsoft o nazwie tożsamość zarządzana przypisana przez użytkownika w celu uzyskania dostępu do zasobu GeoCatalog. Aplikacje mogą używać tożsamości zarządzanych do uzyskiwania tokenów firmy Microsoft Entra (zobacz sekcję Uzyskiwanie tokenu dostępu w celu uzyskania dostępu do programu Microsoft Planetary Computer Pro bez konieczności zarządzania poświadczeniami. Aby uzyskać więcej informacji o tożsamościach zarządzanych i typie do wyboru, zobacz Co to są tożsamości zarządzane dla zasobów platformy Azure. Aby utworzyć tożsamości zarządzane przypisane przez użytkownika dla aplikacji działającej na platformie Azure, postępuj zgodnie z instrukcjami jak używać tożsamości zarządzanych dla usług App Service i Azure Functions.
Aplikacje, które nie są uruchomione na platformie Azure
W przypadku aplikacji, które nie działają na platformie Azure, takich jak systemy lokalne lub hostowane przez innych dostawców chmurowych, zalecamy zarejestrowanie aplikacji w centrum administracyjnym Microsoft Entra, w tym podanie przekierowującego URI do odbioru tokenów zabezpieczeń, aby ustanowić relację zaufania między Twoją aplikacją a platformą tożsamości Microsoft. Zarejestrowanie aplikacji w usłudze Microsoft Entra powoduje automatyczne utworzenie głównego usługowego dla aplikacji, któremu później można przypisać role RBAC. Jeśli twoja aplikacja ma ustawienie umożliwiające skonfigurowanie uwierzytelniania Microsoft Entra ID, możesz do tego celu użyć "identyfikatora aplikacji (klienta)" oraz "identyfikatora katalogu (dzierżawy)" zarejestrowanej aplikacji.
Jeśli nie możesz zarejestrować aplikacji w firmie Microsoft Entra zgodnie z zaleceniami, możesz uruchomić aplikację na maszynie wirtualnej platformy Azure lub w aplikacji kontenera. Tożsamość zarządzaną przypisaną przez użytkownika można utworzyć i przypisać ją do aplikacji Virtual Machine (VM) lub Container, zgodnie z opisem w tym artykule — Konfigurowanie tożsamości zarządzanych na maszynach wirtualnych platformy Azure i tożsamościach zarządzanych w usłudze Azure Container Apps. Aplikacja będzie mogła zalogować się przy użyciu tożsamości zarządzanej w celu uzyskania dostępu do zasobu GeoCatalog. Aby na przykład aplikacja mogła działać wewnątrz maszyny wirtualnej przy użyciu tożsamości zarządzanej przypisanej przez użytkownika, można użyć następujących funkcji:
!az login --identity --username <client_id|object_id|resource_id>
Identyfikator klienta, identyfikator obiektu lub identyfikator zasobu tożsamości zarządzanej można znaleźć w witrynie Azure Portal. Alternatywą dla interfejsu wiersza polecenia jest przykładowy kod języka Python w sekcji Uzyskiwanie tokenu dostępu w celu uzyskania dostępu do programu Microsoft Planetary Computer Pro.
azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>)
Po stworzeniu tożsamości zarządzanej przypisanej przez użytkownika lub głównego użytkownika usług dla aplikacji, zgodnie z opisem powyżej, trzeba zdecydować który typ scenariusza dostępu do aplikacji będzie zastosowany: dostęp wyłącznie aplikacyjny, działający jedynie jako tożsamość samej aplikacji, lub dostęp delegowany, działający w imieniu użytkownika, który się zalogował.
Dostęp tylko do aplikacji
W tym scenariuszu dostępu aplikacja działa samodzielnie bez logowania użytkownika jako domyślne zachowanie. Można przejść do sekcji Konfiguracja Microsoft Planetary Computer Pro RBAC dla aplikacji, aby przypisać odpowiednie role aplikacji.
Dostęp delegowany
W tym scenariuszu dostępu użytkownik zalogował się do aplikacji klienckiej. Aplikacja kliencka uzyskuje dostęp do zasobu w imieniu użytkownika. Należy upewnić się, że użytkownicy aplikacji mają przypisane odpowiednie role RBAC zgodnie z opisem w sekcji Tworzenie użytkowników i zarządzanie nimi. Należy również skonfigurować uprawnienia interfejsu API aplikacji z delegowanymi uprawnieniami, wykonując następujące kroki:
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra
- Przejdź do usługi Identity>Aplikacje>Rejestracje aplikacji, a następnie wybierz aplikację kliencką
- Wybierz Uprawnienia API w obszarze Zarządzanie
- Wybierz pozycję Dodaj uprawnienie
- Wybierz kartę Interfejsy API używane przez moją organizację
- Wpisz Azure Orbital Planetary Computer w polu wyszukiwania
- Wybierz pasujący wpis (identyfikator aplikacji powinien mieć wartość 6388acc4-795e-43a9-a320-33075c1eb83b). Jest on wyświetlany jako Azure Orbital Microsoft Planetary Computer Pro.
- Wybierz pole Uprawnienia delegowane . Zaznacz pole wyboru obok user_impersonation.
- Wybierz pozycję Dodaj uprawnienia
- Wybierz link "Udziel zgody administratora" (jeśli chcesz udzielić zgody administratora dzierżawcy dla tego uprawnienia)
Wzorzec uwierzytelniania delegowanego jest również używany podczas nawiązywania połączenia z systemu QGIS.
Konfiguracja Pro RBAC firmy Microsoft Planetary Computer dla aplikacji
Po utworzeniu tożsamości zarządzanej dla aplikacji działającej na platformie Azure lub jednostce usługi dla aplikacji, która nie jest uruchomiona na platformie Azure, ale zarejestrowanej w usłudze Microsoft Entra, musisz udzielić odpowiednich uprawnień tożsamościom w celu uzyskania dostępu do zasobu GeoCatalog za pośrednictwem konfiguracji kontroli dostępu opartej na rolach.
Poniżej przedstawiono przykład krok po kroku przedstawiający sposób konfigurowania kontroli dostępu (RBAC) Role-Based w celu przypisania roli "Administrator geokatalogu" do tożsamości zarządzanej przypisanej przez użytkownika aplikacji. Te same kroki można wykonać w witrynie Azure Portal, aby skonfigurować kontrolę dostępu opartą na rolach dla jednostki usługi aplikacji.
W portalu Azure przejdź do karty IAM zasobu Microsoft Planetary Computer Pro po lewej stronie.
Wybierz Dodaj przypisanie roli, a następnie wybierz Administrator geokatalogu w obszarze "Role funkcji pracy"
Wybierz przycisk Dalej , a następnie wybierz przycisk radiowy tożsamości zarządzanej
Wybierz pozycję Wybierz członków i wybierz subskrypcję oraz tożsamość zarządzaną przypisaną przez użytkownika w okienku Wybierz tożsamości zarządzane po prawej stronie.
Wybierz pozycję Dalej , aby zweryfikować informacje i zakończyć przeglądanie i przypisywanie.
Uzyskiwanie tokenu dostępu w celu uzyskania dostępu do microsoft Planetary Computer Pro
Po skonfigurowaniu RBAC w celu udzielenia aplikacji odpowiednich uprawnień, musi ona uzyskać token dostępu, aby uwierzytelnić żądania. Poniższy przykładowy kod w języku Python:
import azure.identity
credential = azure.identity.DefaultAzureCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com/")
headers = {"Authorization": f"Bearer {token.token}"}
Uwaga / Notatka
Jeśli aplikacja ma przypisane wiele tożsamości zarządzanych, należy jawnie przekazać odpowiednią tożsamość: azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>). Alternatywnie można skonfigurować zmienne środowiskowe aplikacji na portalu Azure, aby dodać "AZURE_CLIENT_ID" z odpowiednim identyfikatorem klienta tożsamości zarządzanej.
Uwaga / Notatka
Możesz dodać .default lub user_impersonation jako zakres do credential.get_token(), zgodnie z oczekiwanym zachowaniem uwierzytelniania użytkownika.
Uwaga / Notatka
Jeśli aplikacja jest aplikacją internetową, za każdym razem, gdy wprowadzisz zmianę w kodzie lub konfiguracji aplikacji, pamiętaj o zamknięciu i ponownym otwarciu przeglądarki internetowej, aby uniknąć użycia buforowanych poświadczeń.
Aby uzyskać więcej informacji na temat tokenów dostępu, zobacz Access tokens in the Microsoft identity platform (Tokeny dostępu na platformie tożsamości firmy Microsoft ). W przypadku uzyskiwania tokenów dostępu za pomocą wywołania DefaultAzureCredentials() uzyskane tokeny są buforowane przez instancję poświadczeń. Okres istnienia tokenu i odświeżanie są obsługiwane automatycznie. Możesz przekazywać instancję DefaultAzureCredential i wywołać GetToken() lub GetTokenAsync() tuż przed potrzebą tokenu, aby zawsze otrzymać token, który nie jest przeterminowany. Jeśli potrzebujesz utrzymać długą otwartą sesję, możesz obsłużyć wygaśnięcie tokenu w procedurze obsługi błędów, aby przechwycić wyjątek i uzyskać nowy token.
Jeśli nie możesz użyć DefaultAzureCredentials() i zamiast tego posługujesz się innymi metodami, takimi jak AzureCliCredential() do uzyskiwania tokenów dostępu, musisz zarządzać okresem istnienia i odświeżaniem tokenu. Aby uzyskać więcej informacji, zobacz Konfigurowanie okresów istnienia tokenów na platformie tożsamości firmy Microsoft i Odświeżanie tokenów na platformie tożsamości firmy Microsoft .