【问题标题】:Azure AD - Token auth to manage Azure ResourcesAzure AD - 用于管理 Azure 资源的令牌身份验证
【发布时间】:2019-03-13 11:20:19
【问题描述】:

我有一个配置为使用 Azure AD 进行身份验证的 Node.js 应用程序,这部分工作正常。尝试使用 Azure AD 提供的访问令牌时,对 Azure API 的 API 调用表明它们无效。

'Bearer authorization_uri="https://login.windows.net/", error="invalid_token", error_description="访问令牌无效。

如果我使用我的 id_token,我至少能够验证它是一个令牌,但它的受众/资源错误。

【问题讨论】:

  • 你在调用什么 API?令牌中的受众是什么?
  • management.azure.com,受众不是api。试图弄清楚如何获取 Azure AD/Token 请求以显示正确的受众。
  • 在请求访问令牌时尝试使用https://management.core.windows.net/ 作为资源。
  • 将其添加为范围对吗?
  • 你能显示你正在使用的代码吗?

标签: node.js azure-active-directory adal


【解决方案1】:

'Bearer authorization_uri="https://login.windows.net/", error="invalid_token", error_description="访问令牌无效。

根据你的错误信息,我假设token的资源是无效的,

正如@junnas 提到的,您可以在请求访问令牌时尝试使用https://management.core.windows.net/ 作为资源。

或者请添加演示代码以获取访问令牌。

我终于能够使用 ADAL 库获得访问令牌。现在我如何转换该访问令牌以使用 ms-restazure 或 SDK 进行身份验证?

我们可以从GitHub 获得演示代码。以下是文档中的sn-p。

使用服务主体名称和密码登录

var msrestAzure = require('ms-rest-azure');
var someAzureServiceClient = require('azure-arm-someService');
 msRestAzure.loginWithServicePrincipalSecret(clientId, secret, domain, function(err, credentials) {
   if (err) return console.log(err);
   var client = new someAzureServiceClient(credentials, 'your-subscriptionId');
   client.someOperationGroup.method(param1, param2, function(err, result) {
     if (err) retutrn console.log(err);
     return console.log(result);
   });
 });

【讨论】:

    猜你喜欢
    • 2020-04-23
    • 2018-05-10
    • 2016-08-10
    • 2021-01-18
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多