【发布时间】:2017-08-31 10:35:14
【问题描述】:
我是 Azure Data Lake Analytics 的新手,正在将 C# 批处理作业转换为使用服务到服务身份验证,然后再将存储过程提交到 Azure Data Lake Analytics。
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);
}
即使我给了它正确的 ClientId,当我执行以下代码时,错误还是会在错误中返回不同的 ClientID:
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-489c-bed0-....
- 为什么 ClientID 与我在代码中使用的不同?
- 这是代码问题还是权限问题?我假设它是代码,因为 ClientID 不是我创建的授权。
注意:SubscriptionId 是正确的。
【问题讨论】:
标签: c# azure azure-data-lake