Udostępnij za pośrednictwem


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:

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 DefaultAzureCredentialprogramu :