【问题标题】:Microsoft Graph API permissions changes not propagating using Azure Active DirectoryMicrosoft Graph API 权限更改未使用 Azure Active Directory 传播
【发布时间】:2026-02-10 12:25:07
【问题描述】:

我们使用 Azure AD 设置了一个应用程序,该应用程序允许向 MSGraph Office 帐户授予信任/权限。权限未设置为允许代码在用户注册时以编程方式代表用户发送电子邮件。

一些测试版用户开始使用该服务。一段时间后,我们更改了 Azure AD 中的权限,以授予允许代表用户发送电子邮件的权限。

从那时起,新用户可以发送电子邮件,但测试版和老用户仍然没有这些权限。我认为令牌到期设置为 3 天,而且比这要长得多。有没有办法强制将权限传播给所有用户?

如果没有,测试版用户是否可以在某个地方取消订阅该应用(有点像您可以使用 Playstore 应用),然后在他们再次登录时重新分配权限?

【问题讨论】:

  • 不确定是否有帮助,但您是否尝试过“授予权限”按钮?它指出:“您想为当前目录中的所有帐户授予 的以下权限吗?此操作将更新此应用程序已经拥有的任何现有权限,以匹配下面列出的内容。”它就在“+ 添加”权限按钮旁边。
  • @Wiz 我们授予权限,每次有变化。奇怪的是,按钮按照它所说的那样做,它说的是“您的帐户”,但它授予应用程序。无论如何我可以去说 office.portal.com 并取消订阅该应用程序吗?如果用户不想再链接 msgraph,微软肯定已经为用户提供了从 msgraph 权限中取消链接其应用程序/产品的能力?
  • 不确定这是否适用于 Azure AD,但我在笔记中保存了此链接:account.live.com/consent/Manage

标签: azure-active-directory microsoft-graph-api


【解决方案1】:

我希望这已经发生了,但是如果花费的时间太长,您可以通过将prompt=consent 添加到您的初始 OAuth URI 来强制用户重新同意该权限:

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?{parmas}&prompt=consent

【讨论】:

  • 我们目前有 2 个要连接的 url,我可以将该查询参数添加到其中一个吗? graph.microsoft.com/v1.0login.microsoftonline.com{id}/v2.0/.well-known/openid-configuration
  • graph.microsoft.com 是 Graph API,虽然它使用令牌,但它不参与发行它们。另一方面,login.microsoftonline.com 从您的 AAD 实例验证并颁发令牌。这也是您要添加 prompt 查询参数的 OAuth 授权端点。
  • 原因是我上面的登录 url 看起来不像它有 oauth2,这个提示参数是否仍然适用于众所周知的 url?
  • 该网址只检索endpoint configuration settings。您工作流程中的其他地方将是实际的redirect to the OAuth /authorize endpoint。这是您需要将此参数添加到的重定向。
最近更新 更多