Azure AD / Entra ID:提供对应用程序或组中的用户列表的 API 访问权限

问题描述 投票:0回答:1

我有一个 Entra ID 设置,我需要允许外部服务访问用户列表。这些用户来自 2 个组。

目标是允许此外部服务获取这些用户的电子邮件,并且仅获取这些用户的电子邮件,而不是租户中的所有电子邮件。

我创建了一个具有 API 权限的应用程序,认为可以仅使用分配给该应用程序的用户数据来授予对外部服务的 API 访问权限。

我尝试过的:

  1. 尝试使用 User.Read.All 或 User.ReadBasic.All,但它允许外部服务可以查看租户中的所有用户。
  2. 尝试使用 GroupMember.Read.All 这几乎很好,但它不会返回用户的电子邮件,除非我使用 User.ReadBasic.All 启用解决方案 1。

有没有办法在不授予列出租户中所有用户的权限的情况下实现此目标?

或者也许是除应用程序之外的另一种方法?

azure azure-active-directory microsoft-entra-id
1个回答
0
投票

注意:当您添加或授予委托

User.Read.All
/
GroupMember.Read.All
时,默认情况下登录应用程序的用户将能够获取租户中的所有用户。

  • 因此,您可以通过将用户添加到用户和组中来限制用户使用该应用程序。
  • 如果用户生成的访问令牌包含
    User.Read.All
    /
    GroupMember.Read.All
    ,则该用户可以访问租户中的所有用户。
  • 因此,不可能允许用户仅访问用户的子集。

如果您授予

User.Read
,则用户无法获取租户中的所有用户。只能获取登录用户的详细信息。

无法实现您的要求,请授予

User.Read.All
API权限

  • User.Read.All
    API 权限授予后允许读取所有用户的完整个人资料。

enter image description here

生成访问令牌并调用以下 API:

GET https://graph.microsoft.com/v1.0/users

enter image description here

参考:

如何将 User.Read.All 的范围限制为特定的用户子集 - Vasil Michev 的 Microsoft 问答

© www.soinside.com 2019 - 2024. All rights reserved.