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 dowiesz się więcej o:
- Podstawowe pojęcia dotyczące tożsamości zarządzanej.
- Jak utworzyć tożsamość zarządzaną przypisaną przez użytkownika dla aplikacji.
- Jak przypisać role do tożsamości zarządzanej przypisanej przez użytkownika.
- Jak uwierzytelnić użytkownika przy użyciu tożsamości zarządzanej przypisanej przez użytkownika 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.
Napiwek
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 tożsamości zarządzanej przypisanej przez użytkownika dla aplikacji hostowanej Azure. Jeśli musisz użyć tożsamości zarządzanej przypisanej przez system, zobacz Uwierzytelnianie aplikacji Java hostowanych w Azure do zasobów Azure przy użyciu tożsamości zarządzanej przypisanej przez system.
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
Tożsamości zarządzane, przypisane przez użytkownika, są tworzone jako samodzielne zasoby w Twojej subskrypcji Azure, przy użyciu portalu Azure lub narzędzia Azure CLI. Polecenia Azure CLI można wykonywać w Azure Cloud Shell lub na stacji roboczej z zainstalowanym Azure CLI.
W portalu Azure wprowadź Managed identities na głównym pasku wyszukiwania i wybierz odpowiedni wynik w sekcji Services.
Na stronie tożsamości zarządzane wybierz pozycję + Utwórz.
Na stronie Utwórz tożsamość zarządzaną przypisaną przez użytkownika wybierz subskrypcję, grupę zasobów i region tożsamości zarządzanej przypisanej przez użytkownika, a następnie podaj nazwę.
Wybierz opcję Przejrzyj i utwórz, aby przejrzeć i zweryfikować wprowadzone dane.
Wybierz pozycję Utwórz, aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika.
Po utworzeniu tożsamości wybierz pozycję Przejdź do zasobu.
Na stronie Przegląd nowej tożsamości skopiuj wartość Identyfikator klienta, aby później użyć jej przy konfiguracji kodu aplikacji.
Przypisywanie tożsamości zarządzanej do aplikacji
Tożsamość zarządzana przypisana przez użytkownika może być skojarzona z jednym lub wieloma zasobami Azure. Wszystkie zasoby korzystające z tej tożsamości uzyskują uprawnienia nadawane im przez role związane z tożsamością.
W portalu Azure, znajdź zasób, który hostuje kod aplikacji, taki jak usługa 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 przejdź do zakładki Użytkownik przypisany.
Wybierz Dodaj, aby otworzyć panel Dodaj tożsamość zarządzaną przypisaną przez użytkownika.
Na panelu Dodaj przypisaną przez użytkownika tożsamość zarządzaną użyj rozwijanej listy Subskrypcja, aby filtrować wyniki wyszukiwania dla swoich tożsamości. Użyj pola wyszukiwania Tożsamości zarządzane przypisane przez użytkownika, aby zlokalizować tożsamość zarządzaną przypisaną przez użytkownika włączoną dla zasobu Azure hostującego aplikację.
Wybierz tożsamość i wybierz pozycję Dodaj w dolnej części panelu, aby kontynuować.
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 tożsamością zarządzaną przypisaną przez użytkownika.
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 znaleźć przypisaną przez użytkownika tożsamość zarządzaną, którą włączyłeś dla zasobu Azure związanego z hostowaniem aplikacji.
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 oferuje rozmaite implementacje poświadczeń jako TokenCredential. Każda implementacja obsługuje różne scenariusze i przepływy uwierzytelniania Microsoft Entra. W przypadku zarządzanych tożsamości przypisanych użytkownikowi, określ identyfikator klienta, identyfikator zasobu lub identyfikator obiektu przy konfigurowaniu 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 Azure można uzyskać przy użyciu wyspecjalizowanych klas klientów z bibliotek klienckich Azure SDK. W poniższych przykładach kodu pokazano, jak skonfigurować poświadczenie dla uwierzytelniania zarządzanej tożsamości przypisanej przez użytkownika.
Użyj wartości domyślnejAzureCredential
Użyj DefaultAzureCredential jako poświadczenia dla aplikacji hostowanych Azure. W przypadku tożsamości zarządzanych przypisanych przez użytkownika skonfiguruj identyfikator klienta przy użyciu managedIdentityClientId metody :
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
// Configure DefaultAzureCredential with the user-assigned managed identity's client ID
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<user-assigned-managed-identity-client-id>")
.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();
Korzystanie z obiektu ManagedIdentityCredential
Jeśli chcesz jawnie użyć poświadczeń tożsamości zarządzanej i uniknąć wyszukiwania łańcucha poświadczeń w DefaultAzureCredential, użyj ManagedIdentityCredential bezpośrednio. W przypadku tożsamości zarządzanych przypisanych przez użytkownika można określić tożsamość przy użyciu identyfikatora klienta, identyfikatora zasobu lub identyfikatora obiektu.
Użyj identyfikatora klienta, aby zidentyfikować tożsamość zarządzaną podczas konfigurowania aplikacji lub usług, które muszą być uwierzytelniane przy użyciu tej tożsamości.
Pobierz identyfikator klienta przypisany do tożsamości zarządzanej przypisanej przez użytkownika przy użyciu następującego polecenia:
az identity show \
--resource-group <resource-group-name> \
--name <identity-name> \
--query clientId \
--output tsv
Skonfiguruj ManagedIdentityCredential przy użyciu identyfikatora klienta:
import com.azure.identity.ManagedIdentityCredential;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
// Specify the client ID of the user-assigned managed identity
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
.clientId("<user-assigned-managed-identity-client-id>")
.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 użytkownika. Ta forma uwierzytelniania jest jednym z wielu sposobów uwierzytelniania w Azure SDK na potrzeby Java. W poniższych artykułach opisano inne sposoby uwierzytelniania:
- Uwierzytelnianie aplikacji Java hostowanych w Azure do zasobów Azure przy użyciu tożsamości zarządzanej przypisanej przez system
- 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.
Po uwierzytelnieniu głównym zobacz Konfiguruj logowanie w Azure SDK dla Java aby uzyskać informacje na temat funkcji rejestrowania udostępnianych przez zestaw SDK.