0

我正在使用 Node js 对 Azure AD 进行身份验证以创建数据湖存储帐户,它会登录但对于帐户创建它会给出错误:代码:'InvalidAuthenticationTokenTenant', 消息:'访问令牌来自错误的颁发者\' https://sts.windows.n et\'。它必须与与此订阅关联的租户 \' https://sts.windows.net/ \' 匹配。

var msRestAzure = require('ms-rest-azure');
var adlsManagement = require("azure-arm-datalake-store");

msRestAzure.interactiveLogin(function(err, credentials) {

 var accountName = 'testadlsacct';
 var pathToEnumerate = '/myfolder';
  var acccountClient = new adlsManagement.DataLakeStoreAccountClient(credentials, 'dxxxxxxx-dxxx-4xxx-bxxx-5xxxxxxxxx');
 var filesystemClient = new adlsManagement.DataLakeStoreFileSystemClient(credentials);

  var util = require('util');
var resourceGroupName = 'testrg';
var accountName = 'testadlsacct';
var location = 'eastus2';


var accountToCreate = {
  tags: {
    testtag1: 'testvalue1',
    testtag2: 'testvalue2'
  },
  name: accountName,
  location: location
};
var client= new adlsManagement.DataLakeStoreAccountClient(credentials,    'dxxxxxxxx-xxx-xxxx--xxxxxx');
    client.account.create(resourceGroupName, accountName, accountToCreate,     function (err, result, request, response) 
//other code here
});
4

1 回答 1

4

看看ms-rest-azure 的 msRestAzure.interactiveLogin 函数是如何编写的,如果您是多个 Azure Active Directory 的成员(租户)。

您应该传入与您的订阅相关的租户。这应该在您收到的完整的当前错误消息中提供给您。租户可能看起来像“contoso.com”、“contoso.onmicrosoft.com”,也可能是 GUID。

这通过明确提及应该使用哪个目录来消除您的身份验证调用的歧义。

我希望这有帮助!

于 2016-09-07T20:22:22.763 回答