如何使用OIDCStrategy检索的accessToken来遍历AzuregraphicsAPI?

我正在使用https://github.com/AzureAD/passport-azure-ad将nodejs应用程序与Azure AD集成。

我使用OIDCStrategy将用户login到我的node.js应用程序中。

这是我的代码:

(passport.use(new OIDCStrategy({ callbackURL: config.azureadCreds.callbackURL, realm: config.azureadCreds.realm, clientID: config.azureadCreds.clientID, clientSecret: config.azureadCreds.clientSecret, scope: "openid offline_access profile Directory.Read UserProfile.Read", identityMetadata: config.azureadCreds.identityMetadata, skipUserProfile: config.azureadCreds.skipUserProfile, responseType: config.azureadCreds.responseType, responseMode: config.azureadCreds.responseMode, passReqToCallback: true }, function (iss, sub, profile, claims, accessToken, refreshToken, params, done) { request.get("https://graph.windows.net/<my-tenant-id>/me?api-version=1.5", { 'headers': { 'Authorization': "Bearer " + params["id_token"], 'Content-Type': 'application/json' } }, function(err, res, body){ if(err){ console.log("err: " + err); } else{ console.log("res: " + res); } done(); }); }))); 

但是我无法得到任何回应。 我尝试了各种configuration,但没有运气。

由于Passport构build在授权代码授权stream程上 ,并且通过graphicsAPI获取用户configuration文件,我们需要使用客户端凭证在服务到服务调用上构build应用程序。

授权码获得的访问令牌不能简单地用作graphicsAPI的授权。

所以我们需要通过client_credentials为访问令牌构build自定义的HTTP请求,然后利用这个令牌来遍历AzuregraphicsAPI。

构build访问令牌的请求: 在这里输入图像说明

使用访问令牌来遍历天青graphicsAPI:

在这里输入图像说明