我正在编写一个Nodejs CLI,以通过Azure ARM模板部署AAD-Auth保护的Web API。在获取访问令牌以调用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);
}
});
我想使用有效的访问令牌从我的Node CLI调用受AAD保护的Web api。请帮助我为此生成访问令牌。