zoukankan      html  css  js  c++  java
  • Nodejs获取Azure Active Directory AccessToken

    因为现有的代码已经迁入至Azure中,并且受AD保护,所以在获取数据时,需要传入Token后才可以获取到数据,那么第一步肯定是需要先提取到token

    var adal = require('adal-node');
    
    var AuthenticationContext = adal.AuthenticationContext;
    
    var adalParameters = {
        tenant: 'esquel.onmicrosoft.com',
        authorityHostUrl: 'https://login.windows.net',
        clientId: '这个是ID,即创建AD时的AppID',
        clientSecret: '这个是密钥,即创建AD时可以产生的'
    };
    var authorityUrl = adalParameters.authorityHostUrl + '/' + adalParameters.tenant;
    var resource = 'https://esquel.onmicrosoft.com/705cadd7-d8b2-44f7-9c28-3841c112f04b';//这个也非常重要,指定对的resource才可以获取到资源
    var context = new AuthenticationContext(authorityUrl);
    
    module.exports = {
        getToken: function () {
            return new Promise(function (resolve, reject) {
                try {
                    context.acquireTokenWithClientCredentials(resource, adalParameters.clientId, adalParameters.clientSecret, function (err, tokenResponse) {
                        if (err) {
                            reject(err);
                        } else {
                            resolve(tokenResponse);
                        }
                    });
                } catch (e) {
                    reject(e);
                }
            });
        }
    };

    引用代码

    var adal_manage = require('./service/adal_manage');
    
    //get token
    adal_manage.getToken()
    	.then((token_object) => {
    		console.log(token_object.accessToken);		
    	}, (error) => {
    		session.send('[getToken Error:]' + err.message ? err.message : '');
    		session.endDialog();
    	});

    至此就可以将提取到的accessToken作为Authorization参数传入至API,并获取到数据

    参考:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-libraries

    https://www.npmjs.com/package/adal-node

    https://github.com/AzureAD/azure-activedirectory-library-for-nodejs

      

  • 相关阅读:
    JavaScript语言和jQuery技术1
    JSP2
    JavaScript语言和jQuery技术2
    MYSQL2
    JSP1
    JSP5
    JSP3
    Spring框架
    JSP4
    MYSQL3(查询)
  • 原文地址:https://www.cnblogs.com/weschen/p/6694621.html
Copyright © 2011-2022 走看看