Aracılığıyla paylaş


Hizmet sorumlusuyla Azure kimlik doğrulaması

Bu makale, Azure Identity kitaplığının hizmet sorumlusu aracılığıyla Microsoft Entra belirteci kimlik doğrulamasını nasıl desteklediğini ele almaktadır. Bu makale aşağıdaki konuları kapsar:

Daha fazla bilgi için bkz . Microsoft Entra Id'de uygulama ve hizmet sorumlusu nesneleri. Hizmet sorumlusu kimlik doğrulaması sorunlarını gidermek için bkz Hizmet sorumlusu kimlik doğrulaması sorunlarını giderme.

Azure CLI ile hizmet sorumlusu oluşturma

İstemci gizli anahtarı kimlik bilgilerini oluşturmak veya almak için aşağıdaki Azure CLI örneklerini kullanın.

Bir hizmet sorumlusu oluşturmak ve Azure kaynaklarına erişimini yapılandırmak için aşağıdaki komutu kullanın:

az ad sp create-for-rbac \
    --name <your application name> \
    --role Contributor \
    --scopes /subscriptions/mySubscriptionID

Bu komut aşağıdaki çıkışa benzer bir değer döndürür:

{
"appId": "generated-app-ID",
"displayName": "dummy-app-name",
"name": "http://dummy-app-name",
"password": "random-password",
"tenant": "tenant-ID"
}

Sertifikayla birlikte hizmet sorumlusu oluşturmak için aşağıdaki komutu kullanın. Bu sertifikanın yolunu/konumunu not edin.

az ad sp create-for-rbac \
    --name <your application name> \
    --role Contributor \
    --cert <certificate name> \
    --create-cert

Döndürülen kimlik bilgilerini denetleyin ve aşağıdaki bilgileri not edin:

  • AZURE\_CLIENT\_ID appId için.
  • AZURE\_CLIENT\_SECRET parolası için.
  • AZURE_TENANT_ID kiracısı için.

İstemci gizli kimlik bilgisi

Bu kimlik bilgisi, oluşturulan hizmet sorumlusunun kimliğini istemci gizli anahtarı (parola) aracılığıyla doğrular. Bu örnek, SecretClient kullanarak, ClientSecretCredential ile azure-security-keyvault-secrets istemci kitaplığındaki öğesinin kimliğini doğrulamayı gösterir.

/**
 *  Authenticate with client secret.
 */
ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
  .clientId("<your client ID>")
  .clientSecret("<your client secret>")
  .tenantId("<your tenant ID>")
  .build();

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

İstemci sertifikası kimlik bilgileri

Bu kimlik bilgisi, oluşturulan hizmet sorumlusunun kimliğini istemci sertifikası aracılığıyla doğrular. Bu örnek, SecretClient kullanarak, ClientSecretCredential ile azure-security-keyvault-secrets istemci kitaplığındaki öğesinin kimliğini doğrulamayı gösterir.

/**
 *  Authenticate with a client certificate.
 */
ClientCertificateCredential clientCertificateCredential = new ClientCertificateCredentialBuilder()
  .clientId("<your client ID>")
  .pemCertificate("<path to PEM certificate>")
  // Choose between either a PEM certificate or a PFX certificate.
  //.pfxCertificate("<path to PFX certificate>")
  //.clientCertificatePassword("PFX CERTIFICATE PASSWORD")
  .tenantId("<your tenant ID>")
  .build();

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

Sonraki adımlar

Bu makalede hizmet sorumlusu aracılığıyla 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:

Hizmet sorumlusu kimlik doğrulamasıyla ilgili sorunlarla karşılaşırsanız şu talimatlara bakın: Hizmet sorumlusu kimlik doğrulaması sorunlarını giderme.

Kimlik doğrulamasında ustalaştıktan sonra, SDK tarafından sağlanan günlük işlevselliği hakkında bilgi için Java için Azure SDK'da günlüğe kaydetmeyi yapılandırma bölümüne bakın.