Ошибка аутентификации Azure Resource Manager

Я пытаюсь использовать node.js для доступа к диспетчеру ресурсов Azure со следующим примером кода:

msRestAzure.interactiveLogin(function(err, credentials) {
	if (err) console.log(err);
 var client = new resourceManagement.ResourceManagementClient(credentials, 'token');
 client.resources.list(function(err, result) {
   if (err) console.log(err);
   console.log(result);
 });
});

Я получаю следующую ошибку при запуске:

 { Error: The access token is from the wrong issuer 'https://sts.windows.net/token/'. It must match the tenant 'https://sts.windows.net/token/' associated with this subscription. Please use the authority (URL) 'https://login.windows.net/token' to get the token. Note, if the subscription is transferred to another tenant there is no impact to the services, but information about new tenant could take time to propagate (up to an hour). If you just transferred your subscription and see this error message, please try back later.
    at client.pipeline.error (D:\azure-arm\node_modules\azure-arm-resource\lib\resource\operations\resources.js:496:19)
    at retryCallback (D:\azure-arm\node_modules\ms-rest\lib\filters\systemErrorRetryPolicyFilter.js:89:9)
    at retryCallback (D:\azure-arm\node_modules\ms-rest\lib\filters\exponentialRetryPolicyFilter.js:140:9)
    at D:\azure-arm\node_modules\ms-rest\lib\filters\rpRegistrationFilter.js:59:14
    at handleRedirect (D:\azure-arm\node_modules\ms-rest\lib\filters\redirectFilter.js:39:9)
    at D:\azure-arm\node_modules\ms-rest\lib\filters\formDataFilter.js:23:14
    at Request.defaultRequest [as _callback] (D:\azure-arm\node_modules\ms-rest\lib\requestPipeline.js:125:16)
    at Request.self.callback (D:\azure-arm\node_modules\request\request.js:185:22)
    at emitTwo (events.js:106:13)


    at Request.emit (events.js:191:7)

В любом месте, где вы видите токен, я заменил фактическое значение, которое было там. Идентификатор подписки, который я предоставляю, верен. Я попытался войти в систему напрямую, а не с помощью ключа выше, и это имело тот же эффект. В идеале мы хотели бы, чтобы приложение в Azure имело доступ к API руки, но это не похоже на то, что это возможно в Active Directory, и я не могу заставить это работать. Любая помощь будет оценена по достоинству.


person JoshD    schedule 27.02.2019    source источник


Ответы (1)


Я использовал ms-rest-azure версии 2.6.0 и azure-arm-resource версии 7.3.0, и у меня все работало нормально с тем же кодом.

Я думаю, что это безопасно для аутентификации с использованием способа аутентификации субъекта-службы или базового способа аутентификации, а не интерактивного способа аутентификации при входе в систему. У нас есть шаги этих других способов аутентификации здесь -> https://github.com/Azure/azure-sdk-for-node/blob/master/Documentation/Authentication.md#using-authentication-in-your-nodejs-script, который вы можете попробовать, если интересно.

Кроме того, поскольку в идеале вы ищете приложение в Azure для доступа к API ARM, я думаю, что стоит прочитать эту статью -> https://docs.microsoft.com/en-us

Надеюсь это поможет!!

person KrishnaG-MSFT    schedule 27.02.2019