Uwierzytelnianie platformy Azure przy użyciu języka Java i tożsamości platformy Azure
Ten artykuł zawiera omówienie biblioteki tożsamości platformy Azure dla języka Java, która zapewnia obsługę uwierzytelniania tokenów entra firmy Microsoft w zestawie Azure SDK dla języka Java. Ta biblioteka zawiera zestaw implementacji TokenCredential
, których można użyć do konstruowania klientów zestawu Azure SDK obsługujących uwierzytelnianie tokenów firmy Microsoft Entra.
Biblioteka tożsamości platformy Azure obsługuje obecnie następujące przedsiębiorstwa:
- Uwierzytelnianie platformy Azure w środowiskach deweloperskich Java, które umożliwia:
- Uwierzytelnianie IDEA IntelliJ z informacjami logowania pobranymi z zestawu narzędzi Azure Toolkit for IntelliJ.
- Uwierzytelnianie interfejsu wiersza polecenia platformy Azure z informacjami logowania zapisanymi w interfejsie wiersza polecenia platformy Azure
- Uwierzytelnianie interfejsu wiersza polecenia dla deweloperów platformy Azure z informacjami logowania zapisanymi w interfejsie wiersza polecenia dewelopera platformy Azure
- Uwierzytelnianie za pomocą programu Azure PowerShell z informacjami logowania zapisanymi w programie Azure PowerShell
- Uwierzytelnianie aplikacji hostowanych na platformie Azure, co umożliwia:
- Uwierzytelnianie w aplikacjach
DefaultAzureCredential
- Uwierzytelnianie tożsamości zarządzanej
- Uwierzytelnianie w aplikacjach
- Uwierzytelnianie za pomocą jednostek usługi, które umożliwia:
- Uwierzytelnianie wpisów tajnych klienta
- Uwierzytelnianie certyfikatu klienta
- Uwierzytelnianie przy użyciu poświadczeń użytkownika, które umożliwia:
- Uwierzytelnianie za pomocą przeglądarki interakcyjnej
- Uwierzytelnianie kodu urządzenia
- Uwierzytelnianie nazwy użytkownika/hasła
Skorzystaj z poniższych linków, aby dowiedzieć się więcej na temat specyfiki poszczególnych metod uwierzytelniania. W pozostałej części tego artykułu przedstawimy często używane DefaultAzureCredential
i powiązane tematy.
Dodawanie zależności narzędzia Maven
Aby dodać zależność narzędzia Maven, dołącz następujący kod XML do pliku pom.xml projektu. Zastąp ciąg {version_number}
numerem wersji najnowszej stabilnej wersji, jak pokazano na stronie biblioteki tożsamości platformy Azure.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>{version_number}</version>
</dependency>
Najważniejsze pojęcia
Istnieją dwa kluczowe pojęcia dotyczące zrozumienia biblioteki tożsamości platformy Azure: koncepcja poświadczeń i najbardziej typowa implementacja tego poświadczenia. DefaultAzureCredential
Poświadczenie to klasa, która zawiera lub może uzyskać dane potrzebne klientowi usługi do uwierzytelniania żądań. Klienci usług w zestawie Azure SDK akceptują poświadczenia podczas ich konstruowania, a klienci usług używają tych poświadczeń do uwierzytelniania żądań w usłudze.
Biblioteka tożsamości platformy Azure koncentruje się na uwierzytelnianiu OAuth za pomocą identyfikatora Entra firmy Microsoft i oferuje różne klasy poświadczeń, które mogą uzyskać token entra firmy Microsoft w celu uwierzytelniania żądań obsługi. Wszystkie klasy poświadczeń w tej bibliotece są implementacjami TokenCredential
klasy abstrakcyjnej w środowisku azure-core i można ich użyć do konstruowania klientów usługi, którzy mogą uwierzytelniać się za pomocą klasy TokenCredential
.
DefaultAzureCredential
jest odpowiednia w przypadku większości scenariuszy, w których aplikacja ma ostatecznie działać w chmurze platformy Azure. DefaultAzureCredential
Łączy poświadczenia, które są często używane do uwierzytelniania podczas wdrażania, z poświadczeniami używanymi do uwierzytelniania w środowisku projektowym. Aby uzyskać więcej informacji, w tym przykłady użycia DefaultAzureCredential
, zobacz sekcję DefaultAzureCredential dotyczącą uwierzytelniania aplikacji Java hostowanych na platformie Azure.
Przykłady
Jak wspomniano w artykule Korzystanie z zestawu Azure SDK dla języka Java, biblioteki zarządzania różnią się nieco. Jednym ze sposobów ich różnicy jest to, że istnieją biblioteki do korzystania z usług platformy Azure, nazywanych bibliotekami klienckimi i bibliotekami do zarządzania usługami platformy Azure, nazywanymi bibliotekami zarządzania. W poniższych sekcjach przedstawiono krótkie omówienie uwierzytelniania zarówno w bibliotekach klienta, jak i w bibliotekach zarządzania.
Uwierzytelnianie bibliotek klienckich platformy Azure
W poniższym przykładzie pokazano uwierzytelnianie SecretClient
z biblioteki klienta azure-security-keyvault-secrets przy użyciu polecenia DefaultAzureCredential
.
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Uwierzytelnianie bibliotek zarządzania platformy Azure
Biblioteki zarządzania platformy Azure używają tych samych interfejsów API poświadczeń co biblioteki klienckie platformy Azure, ale także wymagają identyfikatora subskrypcji platformy Azure do zarządzania zasobami platformy Azure w tej subskrypcji.
Identyfikatory subskrypcji można znaleźć na stronie Subskrypcje w witrynie Azure Portal. Alternatywnie użyj następującego polecenia interfejsu wiersza polecenia platformy Azure, aby uzyskać identyfikatory subskrypcji:
az account list --output table
Identyfikator subskrypcji można ustawić w zmiennej środowiskowej AZURE_SUBSCRIPTION_ID
. AzureProfile
Pobiera ten identyfikator jako domyślny identyfikator subskrypcji podczas tworzenia Manager
wystąpienia w poniższym przykładzie:
AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
new DefaultAzureCredentialBuilder().build(),
new AzureProfile(AzureEnvironment.AZURE))
.withDefaultSubscription();
DefaultAzureCredential
używany w tym przykładzie uwierzytelnia AzureResourceManager
wystąpienie przy użyciu polecenia DefaultAzureCredential
. Możesz również użyć innych implementacji poświadczeń tokenu oferowanych w bibliotece tożsamości platformy Azure zamiast DefaultAzureCredential
.
Rozwiązywanie problemów
Aby uzyskać wskazówki, zobacz Rozwiązywanie problemów z uwierzytelnianiem tożsamości platformy Azure.
Następne kroki
W tym artykule przedstawiono funkcje tożsamości platformy Azure dostępne w zestawie Azure SDK dla języka Java. W wielu przypadkach została opisana DefaultAzureCredential
jako wspólna i odpowiednia. W poniższych artykułach opisano inne sposoby uwierzytelniania przy użyciu biblioteki tożsamości platformy Azure i podano więcej informacji na temat DefaultAzureCredential
programu :