Node.js 使用Azure AD ADAL.JS的组授权-NodeJS,ReactJS

Node.js 使用Azure AD ADAL.JS的组授权-NodeJS,ReactJS,node.js,azure-active-directory,adal,Node.js,Azure Active Directory,Adal,我已经看到,当使用ADAL.js时,由于一些URL限制,您无法获得组成员资格声明 我使用的是来自前端的oauth承载身份验证,也就是说,前端通过AD登录页面触发登录。 然后,客户端将访问令牌传递给后端 我想做的是: 我想根据组成员身份筛选后端端点中的一些数据。 e、 g.如果您是AD中“伦敦”组的成员,您应该只在DB查询中看到与伦敦相关的内容 超级简单,使用Okta或Auth0,而不是Azure广告 我还想在前端完成同样的事情,即根据组成员身份显示和隐藏菜单项。 (所有访问仍在后端检查) 文档

我已经看到,当使用ADAL.js时,由于一些URL限制,您无法获得组成员资格声明

我使用的是来自前端的oauth承载身份验证,也就是说,前端通过AD登录页面触发登录。 然后,客户端将访问令牌传递给后端

我想做的是:

我想根据组成员身份筛选后端端点中的一些数据。 e、 g.如果您是AD中“伦敦”组的成员,您应该只在DB查询中看到与伦敦相关的内容

超级简单,使用Okta或Auth0,而不是Azure广告

我还想在前端完成同样的事情,即根据组成员身份显示和隐藏菜单项。 (所有访问仍在后端检查)

文档很少,帮助不大。 “您应该使用图形API”

如何?如何使用从前端获得的令牌与graph api对话

这是我的Node+Express端点的设置:

app.use(
  "/contacts",
  passport.authenticate("oauth-bearer", { session: true }),
  contacts
);
我应该如何、在哪里和何时在这里调用graph API

我们的系统非常小,所以我不介意使用会话状态。 我可以在用户登录时获取此信息吗?
这种流动应该是怎样的?客户端登录,登录后,调用后端并请求组?

当用户登录后从Azure AD获得访问令牌时,您可以通过向
get请求来查找用户的组成员身份https://graph.microsoft.com/v1.0/me/memberOf
使用如下访问令牌:

function getGroupsOfUser(accessToken, callback) {
  request
   .get('https://graph.microsoft.com/v1.0/me/memberOf')
   .set('Authorization', 'Bearer ' + accessToken)
   .end((err, res) => {
     callback(err, res);
   });
}
此示例假定您正在使用NPM包


并且列出了调用此API所需的权限。

当用户登录后从Azure AD获取访问令牌时,您可以通过向
get请求来查找用户的组成员身份https://graph.microsoft.com/v1.0/me/memberOf
使用如下访问令牌:

function getGroupsOfUser(accessToken, callback) {
  request
   .get('https://graph.microsoft.com/v1.0/me/memberOf')
   .set('Authorization', 'Bearer ' + accessToken)
   .end((err, res) => {
     callback(err, res);
   });
}
此示例假定您正在使用NPM包

并列出了调用此API所需的权限