微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

List schemaExtensions

MS Docs 提供了一个示例,说明如何通过 MS Graph SDK 列出架构扩展,但结果会返回来自其他开发者和应用的扩展。 MS 注释实际上确实建议以下内容

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

首先,我到底为什么要列出其他人创建的扩展程序? 我只想列出为我自己的应用程序/租户创建的扩展程序,但不明白如何执行此操作? 我找不到 Graph SDK 的示例,该示例展示了如何仅为我自己创建的扩展返回结果。

到目前为止,我使用的是上面链接中的 MS 示例,其中一个通用的结果列表结果返回了来自每个人和他的狗的 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();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?