如何限制应用程序调用 GET /applications 端点以仅列出此应用程序拥有的应用程序

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

如何限制应用程序调用 GET /applications 端点以仅列出该应用程序拥有的应用程序?

例如我有名为“prd-masterapp”的 Masterapp,它用于创建名为“prd-subapp”的子应用程序,现在如果我使用 prd-masterapp 调用 GET / 应用程序端点,此列表会列出租户中的所有应用程序,我想限制这仅列出prd-subapp

这可能吗?或者有什么参考吗?

我已经检查了https://learn.microsoft.com/en-us/graph/permissions-reference -“Application.ReadWrite.OwnedBy”部分,但它也表示具有此权限 - 它将列出租户。

有人面临这样的挑战吗?任何替代权限设置?或任何替代解决方案?

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

我同意@user2250152,您可以利用以下调用仅列出应用程序OwnedBy特定应用程序注册。

GET https://graph.microsoft.com/v1.0/servicePrincipals/spObjId/ownedObjects

我使用 “Application.ReadWrite.OwnedBy” 权限创建了一个应用程序注册

Application
类型如下:

enter image description here

现在,我使用客户端凭据流程生成了一个令牌,并创建了名为 “prd-subapp” 的应用程序注册,如下所示:

POST https://graph.microsoft.com/v1.0/applications
{
"displayName": "prd-subapp"
}

enter image description here

这会自动将

prd-masterapp
添加为 prd-subapp 应用程序注册的 owner,如下所示:

enter image description here

如本MS 文档中所述,

Application.ReadWrite.OwnedBy权限允许应用程序调用

GET /applications
GET /servicePrincipals
端点列出所有 租户中的应用程序和服务主体。这个范围 已获得许可访问。

当我使用具有 “Application.ReadWrite.OwnedBy”权限的令牌运行下面的调用时,我也得到了所有应用程序的列表,如下所示:

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

回复:

enter image description here

凭借

“Application.ReadWrite.OwnedBy” 权限,您可以列出所有应用程序,但无法执行 write 操作,例如添加机密、更新所有应用程序上的应用程序属性(应用程序注册的应用程序 OwnedBy 除外)。

要仅列出应用程序

OwnedBy特定应用程序注册,请使用以下 API 调用:

GET https://graph.microsoft.com/v1.0/servicePrincipals/spObjId/ownedObjects

回复:

enter image description here

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