我是Azure Data Lake Analytics的新手,正在将存储过程提交到Azure Data Lake Analytics之前将C#批量作业转换为使用服务进行服务身份验证。azure数据湖授权
public void AuthenticateADLUser()
{
//Connect to ADL
// Service principal/appplication authentication with client secret/key
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
cTokenCreds = ApplicationTokenProvider.LoginSilentAsync(strDomain, strWebApp_clientId, strClientSecret).Result;
SetupClients(cTokenCreds, strSubscriptionID);
}
public static void SetupClients(ServiceClientCredentials tokenCreds, string subscriptionId)
{
_adlaClient = new DataLakeAnalyticsAccountManagementClient(tokenCreds);
_adlaClient.SubscriptionId = subscriptionId;
_adlaJobClient = new DataLakeAnalyticsJobManagementClient(tokenCreds);
_adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(tokenCreds);
}
即使我已经给它正确的客户端Id错误回来了时,我执行下面的代码错误不同的客户端ID:
var jobInfo = _adlaJobClient.Job.Create(_adlsAccountName, jobId, parameters);.
的错误信息是:
对象ID为'e83bb777-f3af-4526-ae34-f5461a5fde1c'的客户端'e83bb777-f3af-4526-ae34-f5461a5fde1c'没有权限执行'超出范围'/订阅的Microsoft.Authorization/permissions/read'/a0fb08ca-a074-48 9C-bed0 -....
- 为什么ClientID的比我在代码中使用的有什么不同?
- 这是代码问题还是权限问题?我假设它是代码,因为ClientID不是我创建的授权的代码。
注意:SubscriptionId是正确的。
@Mike Waggoner:你能否给我一个更新?它有帮助吗? – COR