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
Kitaplığın kararlı sürümüne bağımlılık oluşturmak için projenize azure-sdk-bom
ekleyin. Aşağıdaki kod parçacığında yer tutucuyu {bom_version_to_target}
sürüm numarasıyla değiştirin. Azure SDK ve Apache Maven ile çalışmaya başlamabelgesindeki Java için Azure SDK'yı var olan bir projeye ekleme bölümüne bakarak Ürün Reçetesi hakkında daha fazla bilgi edinin.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Ardından sürüm etiketi olmadan doğrudan bağımlılığı dependencies
bölümüne ekleyin:
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
</dependencies>
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 TokenCredential
soyut sınıfın 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,
Azure istemci kitaplıklarının kimliğini doğrulama
Aşağıdaki örnekte kullanarak SecretClient
azure-security-keyvault-secrets istemci kitaplığından kimlik doğrulaması DefaultAzureCredential
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 AzureResourceManager
bir DefaultAzureCredential
ö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: