从隔离的Web部件中将成员添加到组

问题描述

我有一个带有独立Web部件的SPFx项目。当前用户可以从Web部件将自己添加到预定义的Azure AD组中。我们正在使用它为用户提供一种通过SPO中的“现代受众群体”订阅内容的方式。

我使用这样的代码添加用户

this.props.context.msGraphClientFactory
.getClient()
.then((client: MSGraphClient): void => {
  client
  .api("/groups/" + groupId + "/members/$ref")
  .version("v1.0")
  .post({ "@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/" + this.state.myId },(error,response) => {
    if (error) {
      this.setState({error: true});
      this.checkMemberships();
    }
    this.checkMemberships();
  });
});

我已经根据组文档尝试了Graph权限的所有可能组合。

https://docs.microsoft.com/en-us/graph/api/group-post-members?view=graph-rest-1.0&tabs=http

但是每次出现相同的问题。如果当前用户是全局管理员,则通话会顺利进行,并且该用户添加到所选组中。如果该用户是普通用户,但没有特殊的管理员角色,则呼叫将失败,并显示“权限不足”。

我意识到这种权限设置为Azure AD中的组打开了一个巨大的大门,但是我们还有其他措施可以阻止Web部件的编辑者随机选择组。一种是使用隔离的Web部件,这样只有该Web部件才能获得许可。

无论是普通的Web部件还是隔离的Web部件,情况都是相同的。有没有人遇到过类似的问题并找到了解决方案?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)