Aracılığıyla paylaş


Azure tarafından barındırılan Java uygulamalarının kimliğini doğrulama

Bu makalede, Azure Kimlik kitaplığının Azure'da barındırılan uygulamalar için Microsoft Entra belirteci kimlik doğrulamasını nasıl desteklediği açıklanmaktadır. Bu destek, bu makalede ele alınan bir dizi TokenCredential uygulama aracılığıyla mümkün hale getirilir.

Bu makale aşağıdaki konuları kapsar:

Azure tarafından barındırılan uygulamalarla ilgili kimlik doğrulama sorunlarını gidermek için bkz . Azure'da barındırılan uygulama kimlik doğrulaması sorunlarını giderme.

DefaultAzureCredential

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. Daha fazla bilgi için bkz . DefaultAzureCredential'a genel bakış.

DefaultAzureCredential'ı yapılandırma

DefaultAzureCredential veya ortam değişkenlerinde ayarlayıcılar aracılığıyla bir dizi yapılandırmayı DefaultAzureCredentialBuilder destekler.

  • Ortam değişkenlerinde tanımlandığı gibi , AZURE_CLIENT_IDve AZURE_CLIENT_SECRET ortam değişkenlerini AZURE_TENANT_ID ayarlamak, değerler tarafından belirtilen hizmet sorumlusu olarak kimlik doğrulaması yapmak için yapılandırılırDefaultAzureCredential.
  • .managedIdentityClientId(String) Oluşturucu veya ortam değişkeni AZURE_CLIENT_ID ayarı, kullanıcı tarafından atanan yönetilen kimlik olarak kimlik doğrulaması yapmak üzere yapılandırılırkenDefaultAzureCredential, boş bırakıldığında sistem tarafından atanan yönetilen kimlik olarak kimlik doğrulaması için yapılandırılır.
  • .tenantId(String) Oluşturucu veya ortam değişkeni AZURE_TENANT_ID ayarı, paylaşılan belirteç önbelleği veya IntelliJ IDEA için belirli bir kiracıda kimlik doğrulaması yapmak üzere yapılandırırDefaultAzureCredential.
  • Ortam değişkeninin AZURE_USERNAME ayarlanması, paylaşılan belirteç önbelleğinden karşılık gelen önbelleğe alınmış belirteci seçecek şekilde yapılandırır DefaultAzureCredential .

DefaultAzureCredential ile kimlik doğrulaması

Aşağıdaki örnekte kullanarak SecretClientazure-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://<KEY_VAULT_NAME>.vault.azure.net")
  .credential(new DefaultAzureCredentialBuilder().build())
  .buildClient();

DefaultAzureCredential ile kullanıcı tarafından atanan yönetilen kimliğin kimliğini doğrulama

Aşağıdaki örnek, kullanıcı tarafından atanan yönetilen kimliğin yapılandırıldığı bir Azure kaynağına dağıtılan azure-security-keyvault-secrets istemci kitaplığından SecretClientkimliğini doğrulamayı gösterirDefaultAzureCredential.

/**
 * DefaultAzureCredential uses the user-assigned managed identity with the specified client ID.
 */
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
  .managedIdentityClientId("<CLIENT_ID>")
  .build();

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
  .credential(credential)
  .buildClient();

ManagedIdentityCredential

ManagedIdentityCredential , bir Azure kaynağının yönetilen kimliğinin (sistem tarafından atanan veya kullanıcı tarafından atanan) kimliğini doğrular. Bu nedenle, uygulama , uç noktaları veya her ikisi aracılığıyla IDENTITY/MSIIMDS yönetilen kimliği destekleyen bir Azure kaynağı içinde çalışıyorsa, bu kimlik bilgisi uygulamanızın kimliğini doğrular ve gizli olmayan bir kimlik doğrulama deneyimi sunar.

Daha fazla bilgi için bkz. Azure kaynakları için yönetilen kimlikler nedir?.

Yönetilen kimlikle Azure'da kimlik doğrulaması

Aşağıdaki örnek, azure-security-keyvault-secrets istemci kitaplığından SecretClientkimlik doğrulamasını ManagedIdentityCredential Azure'da bir Sanal Makine, App Service, İşlevler uygulaması, Cloud Shell, Service Fabric, Arc veya AKS ortamında sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliğin etkinleştirildiği şekilde gösterir.

/**
 * Authenticate with a user-assigned managed identity.
 */
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
  .clientId("<CLIENT_ID>") // required only for user-assigned
  .build();

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
  .credential(credential)
  .buildClient();

Ortam değişkenleri

Ve'yi DefaultAzureCredential ortam değişkenleriyle yapılandırabilirsinizEnvironmentCredential. Her kimlik doğrulama türü belirli değişkenler için değerler gerektirir:

Gizli dizili hizmet sorumlusu

Değişken adı Değer
AZURE_CLIENT_ID Microsoft Entra uygulamasının kimliği.
AZURE_TENANT_ID Uygulamanın Microsoft Entra kiracısının kimliği.
AZURE_CLIENT_SECRET Uygulamanın istemci gizli dizilerinden biri.

Sertifika ile hizmet sorumlusu

Değişken adı Değer
AZURE_CLIENT_ID Microsoft Entra uygulamasının kimliği.
AZURE_TENANT_ID Uygulamanın Microsoft Entra kiracısının kimliği.
AZURE_CLIENT_CERTIFICATE_PATH Özel anahtar da dahil olmak üzere PEM ile kodlanmış bir sertifika dosyasının yolu (parola koruması olmadan).
AZURE_CLIENT_CERTIFICATE_PASSWORD (isteğe bağlı) Varsa sertifika dosyasının parolası.
AZURE_CLIENT_SEND_CERTIFICATE_CHAIN (isteğe bağlı) Konu adını / veren tabanlı kimlik doğrulamasını desteklemek için x5c üst bilgisinde sertifika zinciri gönderin.

Kullanıcı adı ve parola

Değişken adı Değer
AZURE_CLIENT_ID Microsoft Entra uygulamasının kimliği.
AZURE_TENANT_ID Uygulamanın Microsoft Entra kiracısının kimliği.
AZURE_USERNAME Kullanıcı adı (genellikle bir e-posta adresi).
AZURE_PASSWORD Verilen kullanıcı adı için ilişkili parola.

Yapılandırma bu sırada denendi. Örneğin, hem istemci gizli dizisi hem de sertifika değerleri varsa, istemci gizli dizisi kullanılır.

Sonraki adımlar

Bu makalede Azure'da barındırılan uygulamalar için kimlik doğrulaması ele alınmıştır. Bu kimlik doğrulama biçimi, Java için Azure SDK'da kimlik doğrulaması yapmanın birden çok yoludur. Aşağıdaki makalelerde diğer yollar açıklanmaktadır:

Azure tarafından barındırılan uygulama kimlik doğrulamasıyla ilgili sorunlarla karşılaşırsanız bkz . Azure'da barındırılan uygulama kimlik doğrulaması sorunlarını giderme.

Kimlik doğrulamasında ustalaşdıktan sonra, SDK tarafından sağlanan günlük işlevselliği hakkında bilgi için bkz . Java için Azure SDK'da günlüğe kaydetmeyi yapılandırma.