我想创建一个非浏览器应用程序,在没有所有重定向的情况下向AzureAD验证用户,并最终获得令牌。我只能使用nodeJS。 我发现github上的库支持这种情况NodeJS library。
我尝试使用此示例的系统使用azure ad执行领域发现并将用户发送到ADFS进行登录。
当发现ADFS服务器并询问元数据时,它会返回xml,但是aplication会重新加载,整个过程会重新开始。
这是我可以看到的控制台中的最后一个日志: MEX:VERBOSE:在https://adfsservername/adfs/services/trust/mex
检索mex答案 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);
}
});