通过Graph API删除Azure AD应用程序
我的任务是编写一些powershell脚本来自动化Azure AD租户中的一些基本操作。我已经成功地添加和删除了用户和域,并且通过Azure Graph API添加了新的应用程序,但是我没有成功地删除这些应用程序 这方面的文档似乎很少,我还没有找到任何这样做的例子。根据对受支持操作下的应用程序的引用,它应该是可能的(): 支持的操作 应用程序支持以下操作(括号中列出了HTTP方法): 创建(发布) 读(读) 更新(补丁) 删除(删除) 那么URI应该是什么样子呢?我找不到直接答案,但要删除用户,请使用以下命令:通过Graph API删除Azure AD应用程序,azure,azure-active-directory,azure-ad-graph-api,Azure,Azure Active Directory,Azure Ad Graph Api,我的任务是编写一些powershell脚本来自动化Azure AD租户中的一些基本操作。我已经成功地添加和删除了用户和域,并且通过Azure Graph API添加了新的应用程序,但是我没有成功地删除这些应用程序 这方面的文档似乎很少,我还没有找到任何这样做的例子。根据对受支持操作下的应用程序的引用,它应该是可能的(): 支持的操作 应用程序支持以下操作(括号中列出了HTTP方法): 创建(发布) 读(读) 更新(补丁) 删除(删除) 那么URI应该是什么样子呢?我找不到直接答案,但要删除用户,
https://graph.windows.net/myorganization/users/{user_id}[?api-version]
因此,我想尝试类似的方法来删除应用程序:
https://graph.windows.net/company.onmicrosoft.com/applications/{application_id}?api-version=1.6
如果这是正确的,那么应用程序ID是什么?客户端ID和应用程序ID URI对我来说最有意义,但到目前为止,它们和应用程序名称都不适用于我。可能是格式问题吗?根据我的尝试,我会得到不同的错误
应用程序名称:
https://graph.windows.net/company.onmicrosoft.com/applications/application4?api-version=1.6
屈服
Invoke-RestMethod : {"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid object identifier 'application4'."},"values":null}}
Invoke-RestMethod : {"odata.error":"code":"Request_ResourceNotFound","message":{"lang":"en","value":"Resource '00000000-0000-0000-0000-000000000000' does not exist or one of its queried reference-property objects are not present."}}}
客户端ID(此处归零):
屈服
Invoke-RestMethod : {"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid object identifier 'application4'."},"values":null}}
Invoke-RestMethod : {"odata.error":"code":"Request_ResourceNotFound","message":{"lang":"en","value":"Resource '00000000-0000-0000-0000-000000000000' does not exist or one of its queried reference-property objects are not present."}}}
应用程序ID URI-不确定如何添加此内容。也许我需要一些编码吗?尝试了两种方法:
https://graph.windows.net/company.onmicrosoft.com/applications/application4.company.com?api-version=1.6
产生
Invoke-RestMethod : {"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid object identifier 'application4.company.com'."},"values":null}}
及
我怀疑这就是编码的用武之地。目前,它只会产生收益
Invoke-RestMethod : {"odata.error":{"code":"Request_BadRequest","message"{"lang":"en","value":"Bad request. Please fix the request before retrying."}}}
知道我哪里出错了吗?您需要使用objectId。除了客户机id之外,应用程序(与所有AAD对象一样)还有一个objectId 因此,URL应该是:
https://graph.windows.net/company.onmicrosoft.com/applications/{application_objectId}?api-version=1.6
应用程序也有一个ObjectId。你试过了吗?成功了!非常感谢:)我现在看到objectID在应用程序的清单中,但在门户的其他地方看不到它。不知道为什么。不过,以编程方式查找它不应该是个问题。我会投票给你,但我还没有这个名声:(