如何限制应用程序调用 GET /applications 端点以仅列出该应用程序拥有的应用程序?
例如我有名为“prd-masterapp”的 Masterapp,它用于创建名为“prd-subapp”的子应用程序,现在如果我使用 prd-masterapp 调用 GET / 应用程序端点,此列表会列出租户中的所有应用程序,我想限制这仅列出prd-subapp
这可能吗?或者有什么参考吗?
我已经检查了https://learn.microsoft.com/en-us/graph/permissions-reference -“Application.ReadWrite.OwnedBy”部分,但它也表示具有此权限 - 它将列出租户。
有人面临这样的挑战吗?任何替代权限设置?或任何替代解决方案?
我同意@user2250152,您可以利用以下调用仅列出应用程序OwnedBy特定应用程序注册。
GET https://graph.microsoft.com/v1.0/servicePrincipals/spObjId/ownedObjects
我使用 “Application.ReadWrite.OwnedBy” 权限创建了一个应用程序注册
Application
类型如下:
现在,我使用客户端凭据流程生成了一个令牌,并创建了名为 “prd-subapp” 的应用程序注册,如下所示:
POST https://graph.microsoft.com/v1.0/applications
{
"displayName": "prd-subapp"
}
这会自动将
prd-masterapp
添加为 prd-subapp 应用程序注册的 owner,如下所示:
如本MS 文档中所述,
Application.ReadWrite.OwnedBy权限允许应用程序调用
和GET /applications
端点列出所有 租户中的应用程序和服务主体。这个范围 已获得许可访问。GET /servicePrincipals
当我使用具有 “Application.ReadWrite.OwnedBy”权限的令牌运行下面的调用时,我也得到了所有应用程序的列表,如下所示:
GET https://graph.microsoft.com/v1.0/applications
回复:
凭借“Application.ReadWrite.OwnedBy” 权限,您可以列出所有应用程序,但无法执行 write 操作,例如添加机密、更新所有应用程序上的应用程序属性(应用程序注册的应用程序 OwnedBy 除外)。
要仅列出应用程序OwnedBy特定应用程序注册,请使用以下 API 调用:
GET https://graph.microsoft.com/v1.0/servicePrincipals/spObjId/ownedObjects
回复: