Autenticação do Azure com entidade de serviço

Este artigo analisa como a biblioteca de Identidade do Azure dá suporte à autenticação de token do Microsoft Entra por meio da entidade de serviço. Este artigo aborda os seguintes temas:

Para obter mais informações, consulte Objetos principais de aplicativo e serviço no Microsoft Entra ID. Para solucionar problemas de autenticação da entidade de serviço, consulte Solucionar problemas de autenticação da entidade de serviço.

Criar uma entidade de serviço com a CLI do Azure

Use os seguintes exemplos da CLI do Azure para criar ou obter credenciais de segredo do cliente.

Use o seguinte comando para criar uma entidade de serviço e configurar seu acesso aos recursos do Azure:

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

Este comando retorna um valor semelhante à seguinte saída:

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

Use o comando a seguir para criar uma entidade de serviço junto com um certificado. Anote o caminho/local deste certificado.

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

Verifique as credenciais devolvidas e anote as seguintes informações:

  • AZURE\_CLIENT\_ID para o appId.
  • AZURE\_CLIENT\_SECRET para a senha.
  • AZURE\_TENANT\_ID para o inquilino.

Credencial secreta do cliente

Essa credencial autentica a entidade de serviço criada por meio de seu segredo de cliente (senha). Este exemplo demonstra a autenticação da SecretClient biblioteca de cliente azure-security-keyvault-secrets usando o ClientSecretCredential.

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

Credencial de certificado de cliente

Essa credencial autentica a entidade de serviço criada por meio de seu certificado de cliente. Este exemplo demonstra a autenticação da SecretClient biblioteca de cliente azure-security-keyvault-secrets usando o ClientCertificateCredential.

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

Próximos passos

Este artigo abordou a autenticação via entidade de serviço. Essa forma de autenticação é uma das várias maneiras de autenticar no SDK do Azure para Java. Os artigos a seguir descrevem outras maneiras:

Se você tiver problemas relacionados à autenticação da entidade de serviço, consulte Solucionar problemas de autenticação da entidade de serviço.

Depois de dominar a autenticação, consulte Configurar o log no SDK do Azure para Java para obter informações sobre a funcionalidade de registro em log fornecida pelo SDK.