Java ve Azure Identity ile Azure kimlik doğrulaması

Bu makalede, Java için Azure SDK'sı genelinde Microsoft Entra belirteci kimlik doğrulaması desteği sağlayan Java için Azure Kimlik kitaplığına genel bir bakış sağlanır. Bu kitaplık, Microsoft Entra belirteci kimlik doğrulamasını destekleyen Azure SDK istemcileri oluşturmak için kullanabileceğiniz bir dizi TokenCredential uygulama sağlar.

Azure Kimlik kitaplığı şu anda aşağıdakileri desteklemektedir:

Bu kimlik doğrulama yaklaşımlarının her birinin özellikleri hakkında daha fazla bilgi edinmek için bu bağlantıları izleyin. Bu makalenin geri kalanında yaygın olarak kullanılan DefaultAzureCredential ve ilgili konuları tanıtacağız.

Maven bağımlılıklarını ekleme

Maven bağımlılığını eklemek için projenin pom.xml dosyasına aşağıdaki XML'yi ekleyin. değerini Azure Kimlik kitaplığı sayfasında gösterildiği gibi en son kararlı sürümün sürüm numarasıyla değiştirin{version_number}.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{version_number}</version>
</dependency>

Temel kavramlar

Azure Kimlik kitaplığını anlamak için iki temel kavram vardır: kimlik bilgisi kavramı ve bu kimlik bilgilerinin en yaygın uygulaması olan DefaultAzureCredential.

Kimlik bilgisi, bir hizmet istemcisinin isteklerin kimliğini doğrulamak için gereken verileri içeren veya alabilen bir sınıftır. Azure SDK'sı genelindeki hizmet istemcileri, oluşturulduğunda kimlik bilgilerini kabul eder ve hizmet istemcileri hizmette isteklerin kimliğini doğrulamak için bu kimlik bilgilerini kullanır.

Azure Kimlik kitaplığı, Microsoft Entra Id ile OAuth kimlik doğrulamasına odaklanır ve hizmet isteklerinin kimliğini doğrulamak için bir Microsoft Entra belirteci alabilen çeşitli kimlik bilgisi sınıfları sunar. Bu kitaplıktaki tüm kimlik bilgisi sınıfları azure-core'daki soyut sınıfın TokenCredential uygulamalarıdır ve bunlardan herhangi birini kullanarak ile TokenCredentialkimlik doğrulaması yapabilecek hizmet istemcileri oluşturabilirsiniz.

DefaultAzureCredential , uygulamanın nihai olarak Azure Bulut'ta çalışmasının amaçlandığı çoğu senaryo için uygundur. DefaultAzureCredential dağıtıldığında kimlik doğrulaması için yaygın olarak kullanılan kimlik bilgilerini bir geliştirme ortamında kimlik doğrulaması için kullanılan kimlik bilgileriyle birleştirir. kullanan DefaultAzureCredentialörnekler de dahil olmak üzere daha fazla bilgi için Azure'da barındırılan Java uygulamalarının kimliğini doğrulama bölümünün DefaultAzureCredential bölümüne bakın.

Örnekler

Java için Azure SDK'yı kullanma bölümünde belirtildiği gibi, yönetim kitaplıkları biraz farklılık gösterir. Farklı yollardan biri, istemci kitaplıkları olarak adlandırılan Azure hizmetlerinin ve yönetim kitaplıkları olarak adlandırılan Azure hizmetlerinin yönetilmesine yönelik kitaplıkların mevcut olmasıdır. Aşağıdaki bölümlerde hem istemci hem de yönetim kitaplıklarında kimlik doğrulamasına hızlı bir genel bakış verilmiştir.

Azure istemci kitaplıklarının kimliğini doğrulama

Aşağıdaki örnekte kullanarak DefaultAzureCredentialazure-security-keyvault-secrets istemci kitaplığından kimlik doğrulaması SecretClient gösterilmektedir.

// 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();

Azure yönetim kitaplıklarının kimliğini doğrulama

Azure yönetim kitaplıkları, Azure istemci kitaplıkları ile aynı kimlik bilgisi API'lerini kullanır, ancak bu abonelikteki Azure kaynaklarını yönetmek için bir Azure abonelik kimliği gerektirir.

Abonelik kimliklerini Azure portalındaki Abonelikler sayfasında bulabilirsiniz. Alternatif olarak, abonelik kimliklerini almak için aşağıdaki Azure CLI komutunu kullanın:

az account list --output table

Abonelik kimliğini ortam değişkeninde AZURE_SUBSCRIPTION_ID ayarlayabilirsiniz. AzureProfile aşağıdaki örnekte örnek Manager oluşturulurken bu kimliği varsayılan abonelik kimliği olarak alır:

AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
        new DefaultAzureCredentialBuilder().build(),
        new AzureProfile(AzureEnvironment.AZURE))
    .withDefaultSubscription();

DefaultAzureCredentialbu örnekte kullanılan, kullanarak DefaultAzureCredentialbir AzureResourceManager örneğin kimliğini doğrular. yerine Azure Kimlik kitaplığında DefaultAzureCredentialsunulan diğer Belirteç Kimlik Bilgisi uygulamalarını da kullanabilirsiniz.

Sorun giderme

Yönergeler için bkz . Azure Kimlik doğrulaması sorunlarını giderme.

Sonraki adımlar

Bu makalede, Java için Azure SDK'da sağlanan Azure Kimliği işlevselliği tanıtıldı. Çoğu durumda yaygın ve uygun olarak tanımlanmıştır DefaultAzureCredential . Aşağıdaki makalelerde, Azure Kimlik kitaplığını kullanarak kimlik doğrulaması yapmanın diğer yolları açıklanır ve hakkında DefaultAzureCredentialdaha fazla bilgi sağlanır: