Azure AD - 仅使用 MS Graph SDK 为我自己的租户列出 schemaExtensions

Azure AD - List schemaExtensions for my own tenant ONLY using MS Graph SDK

我正在研究可怕的 MS 文档,同时弄清楚如何创建和列出为我自己的租户创建的架构扩展。

List schemaExtensions

MS 文档提供了一个示例,说明如何通过 MS Graph SDK 列出架构扩展,但是结果 return 来自其他开发人员和应用程序的扩展。 MS 注释实际上建议如下:

注意:该列表还将包含由其他租户的其他开发人员创建的模式扩展定义(标记为可用)。这与仅 return 租户特定数据的其他 API 不同。基于架构扩展定义创建的扩展数据是特定于租户的,只能由明确授予权限的应用程序访问。

首先,我到底为什么要列出其他人创建的扩展? 我只想列出为我自己 app/tenant 创建的扩展程序,但不知道该怎么做? 我找不到 Graph SDK 的示例,它显示了如何 return 仅为我自己创建的扩展生成结果。

到目前为止,我正在使用上述 link 中的 MS 示例,其中一个通用列表结果 return 来自每个人和他的狗的 100 多个不同的扩展名!

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var schemaExtensions = await graphClient.SchemaExtensions
    .Request()
    //.Filter("id eq 'graphlearn_test'") // this would only work for returning one particular extension, I want to list all extensions created only for my own app/tenant
    .GetAsync();

在创建扩展的过程中,您可以指定 owner 属性,它是作为架构扩展所有者的应用程序的 appId

默认情况下,调用应用程序的 appId 将被设置为所有者。但是,属性 可能会在创建时提供,以将所有者 appId 设置为与调用应用程序不同的内容。一旦设置,此 属性 为只读且无法更改。

然后您可以通过 owner 属性.

过滤扩展名
GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var schemaExtensions = await graphClient.SchemaExtensions
    .Request()
    .Filter("owner eq 'your_app_id'")
    .GetAsync();