【发布时间】: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