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.
Zalecaną metodą uwierzytelniania aplikacji hostowanej Azure w innych zasobach Azure jest użycie zarządzanej tożsamości. Większość usług Azure obsługuje to podejście, w tym aplikacje hostowane na Azure App Service, Azure Container Apps i Azure Virtual Machines. Aby uzyskać więcej informacji, zobacz usługi i typy zasobów Azure obsługujące tożsamości zarządzane. Aby uzyskać więcej informacji na temat różnych technik uwierzytelniania i podejść, zobacz
W poniższych sekcjach nauczysz się:
- Podstawowe pojęcia dotyczące tożsamości zarządzanej.
- Jak utworzyć tożsamość zarządzaną przypisaną przez system dla aplikacji.
- Jak przypisać role do tożsamości zarządzanej przypisanej przez system.
- Jak uwierzytelniać się przy użyciu tożsamości zarządzanej przypisanej przez system z kodu aplikacji.
Podstawowe pojęcia dotyczące tożsamości zarządzanej
Tożsamość zarządzana umożliwia aplikacji bezpieczne nawiązywanie połączeń z innymi zasobami Azure bez używania kluczy tajnych lub innych sekretów aplikacji. Wewnętrznie Azure śledzi tożsamość i zasoby, z którymi może się łączyć. Azure używa tych informacji do automatycznego uzyskiwania tokenów Microsoft Entra dla aplikacji w celu umożliwienia mu nawiązywania połączenia z innymi zasobami Azure.
Istnieją dwa typy tożsamości zarządzanych, które należy wziąć pod uwagę podczas konfigurowania hostowanej aplikacji:
- Przypisane przez system tożsamości zarządzane zostają włączone bezpośrednio w zasobie Azure i są powiązane z jego cyklem życia. Po usunięciu zasobu Azure automatycznie usuwa tożsamość za Ciebie. Tożsamości przypisane przez system zapewniają minimalistyczne podejście do korzystania z tożsamości zarządzanych.
- Przypisane przez użytkownika tożsamości zarządzane są tworzone jako autonomiczne zasoby Azure i oferują większą elastyczność i możliwości. Są one idealne dla rozwiązań, które obejmują wiele zasobów Azure i muszą współdzielić tę samą tożsamość oraz uprawnienia. Jeśli na przykład wiele maszyn wirtualnych musi uzyskać dostęp do tego samego zestawu zasobów Azure, tożsamość zarządzana przypisana przez użytkownika zapewnia możliwość ponownego użytku i zoptymalizowane zarządzanie.
Wskazówka
Dowiedz się więcej na temat wybierania i zarządzania tożsamościami zarządzanymi przypisanymi przez system i użytkownika w artykule Zalecenia najlepszych praktyk dotyczących tożsamości zarządzanej.
W poniższych sekcjach opisano kroki włączania i używania przypisanej przez system tożsamości zarządzanej dla aplikacji hostowanej Azure. Jeśli musisz użyć tożsamości zarządzanej przypisanej przez użytkownika, zapoznaj się z Uwierzytelnianie aplikacji Java hostowanych na platformie Azure do zasobów Azure przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.
Włącz tożsamość zarządzaną przypisaną przez system w zasobie hostingu Azure
Aby rozpocząć korzystanie z tożsamości zarządzanej przypisanej przez system w aplikacji, włącz tożsamość w zasobie Azure, który hostuje aplikację, takim jak Azure App Service, Azure Container Apps czy wystąpienie Azure Virtual Machines.
Tożsamość zarządzaną przypisaną przez system można włączyć dla zasobu Azure przy użyciu portalu Azure lub Azure CLI.
W portalu Azure przejdź do zasobu hostującego kod Twojej aplikacji, takiego jak wystąpienie Azure App Service lub Azure Container Apps.
Na stronie przeglądu zasobu rozwiń Ustawienia i wybierz pozycję Tożsamość z menu nawigacyjnego.
Na stronie Identity przełącz suwak Status na Włącz.
Wybierz pozycję Zapisz, aby zastosować zmiany.
Nadaj role tożsamości zarządzanej
Następnie określ, które role potrzebuje Twoja aplikacja, i przypisz te role do tożsamości zarządzanej. Role można przypisać do tożsamości zarządzanej w następujących zakresach:
- Zasób: Przypisane role mają zastosowanie tylko do tego konkretnego zasobu.
- grupa zasobów: przypisane role mają zastosowanie do wszystkich zasobów zawartych w grupie zasobów.
- Subskrypcja: Role przypisane mają zastosowanie do wszystkich zasobów zawartych w subskrypcji.
W poniższym przykładzie pokazano, jak przypisywać role w zakresie grupy zasobów, ponieważ wiele aplikacji zarządza wszystkimi powiązanymi zasobami Azure przy użyciu jednej grupy zasobów.
Przejdź do strony Przegląd grupy zasobów zawierającej aplikację z przypisaną przez system tożsamością zarządzaną.
Wybierz pozycję Kontrola dostępu (IAM) na lewym panelu nawigacyjnym.
Na stronie Kontrola dostępu (IAM) wybierz pozycję + Dodaj w górnym menu, a następnie wybierz pozycję Dodaj przydział roli, aby przejść do strony Dodaj przydział roli.
Strona Dodawanie przypisania roli przedstawia wieloetapowy proces z zakładkami do przypisywania ról tożsamościom. Na początkowej karcie Rola użyj pola wyszukiwania u góry, aby zlokalizować rolę, którą chcesz przypisać tożsamości.
Wybierz rolę z wyników, a następnie wybierz pozycję Dalej, aby przejść do karty Członków.
Dla opcji Przypisz dostęp do wybierz opcję Tożsamość zarządzana.
W przypadku opcji członkowie, wybierz + Wybierz członków, aby otworzyć panel Wybierz tożsamości zarządzane.
Na panelu Wybierz zarządzane tożsamości, użyj list rozwijanych Subskrypcja i Zarządzana tożsamość, aby filtrować wyniki wyszukiwania dla Twoich tożsamości. Użyj pola wyszukiwania Select, aby zlokalizować tożsamość systemową, którą włączyłeś dla zasobu Azure, który hostuje Twoją aplikację.
Wybierz tożsamość i wybierz pozycję Wybierz w dolnej części panelu, aby kontynuować.
Wybierz opcję Przejrzyj i przypisz na dole strony.
Na ostatniej karcie Przeglądanie i przypisywanie wybierz pozycję Przeglądanie i przypisywanie, aby zakończyć przepływ pracy.
Uwierzytelnianie w usługach Azure z aplikacji
Biblioteka Azure Identity udostępnia różne poświadczenia — implementacje TokenCredential dostosowane do obsługi różnych scenariuszy i przepływów uwierzytelniania Microsoft Entra. Ponieważ tożsamość zarządzana jest niedostępna w przypadku uruchamiania lokalnego, poniższe kroki wyjaśniają, które poświadczenia mają być używane w którym scenariuszu.
-
lokalne środowisko deweloperskie: podczas tworzenia lokalnego tylkoużyj klasy o nazwie DefaultAzureCredential dla wstępnie skonfigurowanego łańcucha poświadczeń.
DefaultAzureCredentialodnajduje poświadczenia użytkownika z lokalnego narzędzia lub środowiska IDE, takich jak Azure CLI lub Visual Studio Code. Zapewnia również elastyczność i wygodę ponawiania prób, czas oczekiwania na odpowiedzi i obsługę wielu opcji uwierzytelniania. Aby dowiedzieć się więcej, odwiedź artykuł Uwierzytelnianie do usług Azure podczas lokalnego programowania. -
Aplikacje hostowane w Azurze: Kiedy Twoja aplikacja działa w Azurze, użyj
ManagedIdentityCredential, aby bezpiecznie odnaleźć skonfigurowaną dla niej tożsamość zarządzaną. Określenie tego dokładnego typu poświadczeń uniemożliwia nieoczekiwane pobieranie innych dostępnych poświadczeń.
Implementowanie kodu
Dodaj zależność azure-identity do pliku pom.xml:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
Dostęp do usług platformy Azure jest uzyskiwany przy użyciu wyspecjalizowanych klas klientów z różnych bibliotek klienckich zestawu Azure SDK. W poniższym przykładzie kodu pokazano, jak utworzyć instancję poświadczeń i używać jej z klientem usługi Azure SDK. W kodzie aplikacji wykonaj następujące kroki, aby uwierzytelnić się przy użyciu tożsamości zarządzanej:
- Zaimportuj
DefaultAzureCredentialBuilderklasy ,ManagedIdentityCredentialBuilderiTokenCredential. - Przekaż odpowiednie
TokenCredentialwystąpienie do klienta:- Użyj
DefaultAzureCredentialpodczas lokalnego uruchamiania - Użyj
ManagedIdentityCredential, gdy Twoja aplikacja jest uruchomiona na platformie Azure
- Użyj
W poniższym przykładzie pokazano uwierzytelnianie SecretClient przy użyciu tożsamości zarządzanej przypisanej przez system:
import com.azure.core.credential.TokenCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
TokenCredential credential = null;
// Set up credential based on environment (Azure or local development)
String environment = System.getenv("ENV");
if (environment != null && environment.equals("production")) {
credential = new ManagedIdentityCredentialBuilder()
.build();
} else {
credential = new DefaultAzureCredentialBuilder()
.build();
}
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your-key-vault-name>.vault.azure.net")
.credential(credential)
.buildClient();
Dalsze kroki
W tym artykule opisano uwierzytelnianie przy użyciu tożsamości zarządzanej przypisanej przez system. Ta forma uwierzytelniania jest jednym z wielu sposobów uwierzytelniania w Azure SDK na potrzeby Java. W poniższych artykułach opisano inne sposoby:
- Uwierzytelnianie aplikacji Java hostowanych w Azure w celu uzyskania dostępu do zasobów Azure przy użyciu tożsamości zarządzanej przypisanej użytkownikowi
- Uwierzytelnianie aplikacji Java do usług Azure podczas lokalnego tworzenia za pomocą kont dewelopera
- Uwierzytelnienie aplikacji Java w usługach Azure podczas lokalnego rozwoju za pomocą zasad usługi
Jeśli wystąpią problemy związane z uwierzytelnianiem aplikacji hostowanej Azure, zobacz Rozwiązywanie problemów z uwierzytelnianiem aplikacji hostowanych Azure.