Azure ADAL-如何获取刷新令牌/如何刷新Node.js后端服务器到服务器连接的访问​​令牌?

时间:2019-05-10 10:05:46

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

我在Node JS后端使用adal-node模块将文件写入Azure存储。身份验证工作正常,但是我获得的访问令牌仅有效1小时。到目前为止,我仍然找不到刷新访问令牌的方法。有人可以建议吗?

我尝试获取刷新令牌。但是我在下面使用的身份验证功能不会发送刷新令牌。我还尝试过使用相同的auth函数在一段时间后创建一个新令牌,但事实证明令牌始终是相同的。

这是我用来获取访问令牌的代码。

var AuthenticationContext = require('adal-node').AuthenticationContext;

var authorityHostUrl = 'https://login.windows.net';
var tenant = 'myTenant.onmicrosoft.com'; // AAD Tenant name.
var authorityUrl = authorityHostUrl + '/' + tenant;
var applicationId = 'yourApplicationIdHere'; // Application Id of app registered under AAD.
var clientSecret = 'yourAADIssuedClientSecretHere'; // Secret generated for app. Read this environment variable.
var resource = '00000002-0000-0000-c000-000000000000'; // URI that identifies the resource for which the token is valid.

var context = new AuthenticationContext(authorityUrl);

context.acquireTokenWithClientCredentials(resource, applicationId, clientSecret, function(err, tokenResponse) {
  if (err) {
    console.log('well that didn\'t work: ' + err.stack);
  } else {
    console.log(tokenResponse);
  }
});

需要某种方式来刷新我的访问令牌,以使我的长期运行的工作不会停止。

1 个答案:

答案 0 :(得分:1)

只需获取一个新的访问令牌。

在“客户端凭据”流中,不返回刷新令牌。 (请参阅OAuth 2.0规范的Section 4.4.3。)