Microsoft graph api 正在删除未处于未开发状态的架构扩展

Microsoft graph api 正在删除未处于未开发状态的架构扩展,microsoft-graph-api,Microsoft Graph Api,根据文档,您只能删除未开发的架构扩展。一旦模式移动到可用状态,就没有返回未开发的路径 真的没有办法删除您提供的模式吗?或者它在beta端点上可用,或者计划在未来使用 在我的租户中,我还看到了许多虚拟/测试模式扩展,清理它们会很好,但我无法真正看到哪个应用程序创建/拥有该模式 如果我不能在我的租户中真正控制和拥有模式扩展,那么该功能看起来就没有最初那么吸引人了。这不是图形的限制,而是Active Directory从一开始就已经建立的良好行为 Active Directory不使用“删除”,而是使

根据文档,您只能删除未开发的架构扩展。一旦模式移动到可用状态,就没有返回未开发的路径

真的没有办法删除您提供的模式吗?或者它在beta端点上可用,或者计划在未来使用

在我的租户中,我还看到了许多虚拟/测试模式扩展,清理它们会很好,但我无法真正看到哪个应用程序创建/拥有该模式


如果我不能在我的租户中真正控制和拥有模式扩展,那么该功能看起来就没有最初那么吸引人了。

这不是图形的限制,而是Active Directory从一开始就已经建立的良好行为

Active Directory不使用“删除”,而是使用。Microsoft Graph使用状态“”表示停用的架构扩展。因此,虽然您不能修改它,但可以修改它并将状态设置为
已弃用


2002年有一篇关于这个主题的有趣文章,您可能会发现它很有趣:。请注意,我不能容忍或支持他的方法,以绕过缺乏模式删除。以这种方式进行广告几乎肯定会带来许多无法预料和令人讨厌的影响。我只提供了一个链接供您启发,并强调这个限制已经存在了多长时间。

关于我们围绕模式生命周期所做决定的一些背景信息,希望能回答您的一些问题。模式生命周期是有文档记录的

总结:

  • 当模式处于
    未开发状态时
    可以进行附加更改,也可以删除模式。可以做的事情是有限制的,但在这个范围内,它应该是功能齐全的。(此处的范围是,在此状态下,只有所有者应用程序可以使用此架构定义扩展资源实例,并且只能在所有者应用程序注册的同一目录中进行扩展。)
  • 仅添加更改—我们这样做是因为如果您从模式定义中删除任何属性,那么最终将对此模式扩展的任何资源实例进行破坏性更改
  • 为什么不推荐-为什么我不能删除可用的模式定义?所以我们这样做是因为如果您删除一个模式定义,这将导致数据丢失的情况——以及破坏任何依赖于此模式扩展的其他情况,因为我们无法根据已删除的定义对资源实例的扩展进行推理。本质上,
    已弃用
    状态允许它对除应用程序所有者之外的所有人隐藏,但仍然存在,这样就不会出现数据丢失的情况
如果生命周期模型有改进,我们当然非常愿意接受这些改进


无论如何,希望这能有所帮助,

我意识到AAD是推动这一点的原因,但在我看来,缺乏完全控制使得模式扩展不那么吸引人。我无法完全测试模式何时处于未开发状态,因为我无法将其与对象一起使用,一旦将其激活,我就无法删除属性,只能添加属性。对我来说,模式扩展的好处是能够进行过滤,但我可能最终会使用开放扩展,并使用自定义代码进行过滤——在所有对象上循环。我将添加缓存或类似功能以弥补速度不足。或者将额外的数据存储在灵活、快速的地方。我同意,并强烈建议为此设立一个单独的开发人员广告。开发人员广告是个好主意。我还需要一个单独的租户来实现这一点,因为我想在O365工件上使用模式。现在我正在使用我的开发租户,但我也不想把这个弄得太乱。也许30天的试用期是解决这个问题的最好办法。我经常在“往墙上扔东西”阶段使用30天的试用期。因为O365在幕后利用了AAD,所以你们两个都可以很快地启动。这也是花时间编写任何生产架构/配置更改脚本的好借口,这样您就可以快速地将它们重新应用到新的临时租户中。:)听起来是个聪明的方法。除了脚本部分,我更喜欢应用程序令牌。但我会在周末想出一些办法:)但我并不太热衷于从管理的角度来看这是如何工作的,不允许删除。但事实就是这样。根据数据丢失情况来看,这是有道理的,但我们可以这样说:)我仍然觉得奇怪,我的租户中有很多看似虚假的方案——可能是由微软创建的。我将取出ownerid,并尝试关联哪些应用拥有它们。如果我可以使用相同的ADAL应用和委派perm来创建架构,就像我使用应用令牌进行资源扩展一样,我的未开发问题现在可以通过您的修复来解决。也就是说,我不会使用图形浏览器来创建模式。