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

Este artigo analisa como a biblioteca de identidade do Azure oferece suporte à autenticação de token do Microsoft Entra por meio da entidade de serviço. Este artigo abrange os seguintes assuntos:

Para obter mais informações, confira Objetos de aplicativo e entidade de 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.

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

Use os exemplos a seguir 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

Esse 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/localização desse certificado.

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

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

  • AZURE\_CLIENT\_ID para a appId.
  • AZURE\_CLIENT\_SECRET para a senha.
  • AZURE\_TENANT\_ID para o locatário.

Credencial de segredo do cliente

Essa credencial autentica a entidade de serviço criada por meio de seu segredo do cliente (senha). Este exemplo demonstra a autenticação do SecretClient da biblioteca de clientes azure-security-keyvault-secrets usando a 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 do cliente

Essa credencial autentica a entidade de serviço criada por meio de seu certificado do cliente. Este exemplo demonstra a autenticação do SecretClient da biblioteca de clientes azure-security-keyvault-secrets usando a 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óximas etapas

Este artigo abordou a autenticação por meio da entidade de serviço. Essa forma de autenticação é uma das várias maneiras de autenticar-se no SDK do Azure para Java. Os seguintes artigos descrevem outras maneiras de realizar a:

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 ter feito a autenticação mestra, confira Configurar o registro em log no SDK do Azure para Java para obter informações sobre a funcionalidade de registro em log fornecida pelo SDK.