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:
- Java geliştirme ortamlarında Azure kimlik doğrulaması şunları sağlar:
- IntelliJ için Azure Toolkit'ten alınan oturum açma bilgileriyle IDEA IntelliJ kimlik doğrulaması.
- Azure CLI kimlik doğrulaması, oturum açma bilgileri Azure CLI'ye kaydedildi
- Azure Geliştirici CLI'sına kaydedilen oturum açma bilgileriyle Azure Geliştirici CLI kimlik doğrulaması
- Azure PowerShell'de kaydedilen oturum açma bilgileriyle Azure PowerShell kimlik doğrulaması
- Azure'da barındırılan uygulamaların kimliğini doğrulama:
DefaultAzureCredential
kimlik doğrulaması- Yönetilen Kimlik kimlik doğrulaması
- Hizmet sorumlularıyla kimlik doğrulaması, şunları sağlar:
- İstemci Gizli Anahtarı kimlik doğrulaması
- İstemci Sertifikası kimlik doğrulaması
- Kullanıcı kimlik bilgileriyle kimlik doğrulaması:
- Etkileşimli tarayıcı kimlik doğrulaması
- Cihaz kodu kimlik doğrulaması
- Kullanıcı adı/parola kimlik doğrulaması
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 TokenCredential
kimlik 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 DefaultAzureCredential
azure-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();
DefaultAzureCredential
bu örnekte kullanılan, kullanarak DefaultAzureCredential
bir AzureResourceManager
örneğin kimliğini doğrular. yerine Azure Kimlik kitaplığında DefaultAzureCredential
sunulan 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 DefaultAzureCredential
daha fazla bilgi sağlanır: