使用客户端凭据节点js

时间:2017-06-05 08:52:31

标签: node.js azure authentication azure-ad-b2c

我想创建一个非浏览器应用程序,在没有所有重定向的情况下向AzureAD验证用户,并最终获得令牌。我只能使用nodeJS。 我发现github上的库支持这种情况NodeJS library

我尝试使用此示例的系统使用azure ad执行领域发现并将用户发送到ADFS进行登录。

当发现ADFS服务器并询问元数据时,它会返回xml,但是aplication会重新加载,整个过程会重新开始。

这是我可以看到的控制台中的最后一个日志: MEX:VERBOSE:在https://adfsservername/adfs/services/trust/mex

检索mex

1 个答案:

答案 0 :(得分:0)

使用客户端凭据流对Azure AD进行身份验证时,无需与ADFS进行交互。您可以参考azure-activedirectory-library-for-nodejs提供的代码示例:

服务器到服务器通过客户端凭据:

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

var authorityHostUrl = 'https://login.windows.net';
var tenant = 'myTenant';
var authorityUrl = authorityHostUrl + '/' + tenant;
var clientId = 'yourClientIdHere';
var clientSecret = 'yourAADIssuedClientSecretHere'
var resource = '00000002-0000-0000-c000-000000000000';

var context = new AuthenticationContext(authorityUrl);

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