public BlobServiceAsyncClient getBlobServiceAsyncClient() {
    BlobServiceClientBuilder blobServiceClientBuilder = getBlobServiceClientBuilder();

    if (azureBlobConfig.getUseTokenCredentialAuthentication(systemName)) {
      // Use your Azure Blob Storage account's name and client details to create a token credential object to access your account.
      TokenCredential tokenCredential = getTokenCredential();
      return blobServiceClientBuilder.credential(tokenCredential).buildAsyncClient();
    }

    // Use your Azure Blob Storage account's name and key to create a credential object to access your account.
    StorageSharedKeyCredential storageSharedKeyCredential = getStorageSharedKeyCredential();
    return blobServiceClientBuilder.credential(storageSharedKeyCredential).buildAsyncClient();
  }
method creates BlobServiceAsyncClient using the configs provided earlier.
if the authentication method is set to {@link TokenCredential} then a {@link com.azure.identity.ClientSecretCredential}
is created and used for the Blob client. Else authentication is done via account name and key using the
{@link StorageSharedKeyCredential}.
The config used to determine which authentication is systems.%s.azureblob.useTokenCredentialAuthentication = true
for using TokenCredential.
@return BlobServiceAsyncClient
samza-azure/src/main/java/org/apache/samza/system/azureblob/AzureBlobClientBuilder.java