Search code examples
azure-table-storageazure-machine-learning-serviceazure-python-sdk

mltable client insists on using interactive authentication


I can't get the mltable client to stop using interactive authentication to load or save data. The folowing code:

registered_data_asset = ml_client.data.get(
    'Dataset',
    label='latest')
            
tbl = mltable.load(f'azureml:/{registered_data_asset.id}')

Results in the prompt:

Performing interactive authentication. Please follow the instructions on the terminal.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code XXXXXXXX to authenticate.

I can't use interactive authentication for my use case, I need authentication through environment variables. And this should work because mlclient is able to use environment authentication.

I have AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID in my environment vars. I also looked at Azure tableclient in console app using interactive authentication and I've made sure that my app registration has the role Storage Table Data Contributor from the store account that I use for mltables.

It seems that the issue arises when a method from the Copier class from azureml.dataprep.rslex is called. But this class is a built-in so I can't really determine what is going on.

Does anyone know how to get mltable to stop using interactive authentication?


Solution

  • Turns out to have been a bug which was fixed in mltable == 1.6.1 https://pypi.org/project/mltable/1.6.1/