【问题标题】:Getting AAD App access token to call Azure App service with client secret获取 AAD 应用访问令牌以使用客户端密码调用 Azure 应用服务
【发布时间】:2019-05-27 11:29:28
【问题描述】:

我正在编写一个 Nodejs CLI 来通过 Azure ARM 模板部署 AAD-Auth 保护的 Web API。在获取 Access-Token 以调用 Web API 时面临问题。

我使用 adal-node 库使用 AAD-App clientID 和 secret 生成访问令牌,但生成的令牌没有有效的 objectId。

我还尝试获取 device_code,然后尝试使用相同的方式获取访问令牌,但失败并出现错误“需要访问组织中只有管理员才能授予的资源的权限。请让管理员授予此应用程序的权限在你可以使用它之前。”..

但是,如果我转到浏览器并输入 https://app-service-name.azurewebsites.net/.auth/me,系统会提示我输入我的天蓝色登录凭据并同意让 AAD-App 访问资源,我会在浏览器上获得访问令牌。这个访问令牌具有我需要的所有属性(受众、发行者、objectId)。我正在努力从 nodejs CLI 获取类似的访问令牌。

const context = new AuthenticationContext('https://login.microsoftonline.com/my-tenant-id');
context.acquireTokenWithClientCredentials(
    aadAppIdUri, aadAppId, aadClientSecret, (err: Error, result: any) => {
        if (err) {
            reject(err);
        } else {
            resolve(result.accessToken);
        }
    });

我想使用有效的访问令牌从我的节点 CLI 调用受 AAD 保护的 Web api。请帮我为此生成访问令牌。

【问题讨论】:

    标签: node.js azure azure-active-directory azure-web-app-service adal


    【解决方案1】:

    通过客户端凭证获取访问令牌的方式需要应用权限

    通过登录凭据获取访问令牌的方式需要委托权限

    确保您拥有应用所需的应用权限。

    另外,记得点击授予管理员同意按钮。

    【讨论】:

      猜你喜欢
      • 2020-09-15
      • 1970-01-01
      • 2021-10-23
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      相关资源
      最近更新 更多