如何通过Microsoft Graph REST API获取非本地多租户应用程序的应用程序数据?

时间:2018-01-04 00:52:08

标签: office365 microsoft-graph azure-ad-graph-api appsource

我正在开发一项功能来监控Office 365环境中安装的第三方应用程序。在Graph API中,我找到了一个REST调用来获取租户上的服务主体。我还发现了一些文章和文档,详细介绍了Azure AD中服务主体和应用程序之间的关系。因此,我了解多租户应用程序将仅在该应用程序的主机租户上具有应用程序对象,而运行该应用程序的每个租户将具有该应用程序的单独服务主体对象。请参阅以下链接:

Application and service principal objects in Azure Active Directory (Azure AD)

但是,当我尝试使用Get Application REST调用传入服务主体内部的appId时,我只能获得托管在本地租户上的应用程序的结果,而不是Azure或AppSource市场提供的应用程序的结果。我正在使用这个电话:

Get application

当我尝试时,我得到一个Request_ResourceNotFound错误代码。



{
    "error": {
        "code": "Request_ResourceNotFound",
        "message": "Resource 'd3cef409-c681-492f-88c3-365b46bc00c5' does not exist or one of its queried reference-property objects are not present.",
        "innerError": {
            "request-id": "1d6f2479-8b9b-4e96-8623-6fa10ed2a3e2",
            "date": "2018-01-04T00:09:36"
        }
    }
}




我甚至尝试将图谱API转到Azure AD API,您可以在其中指定租户ID,但结果类似。这是我尝试过的Azure API:

Applications - Get

我怀疑有一种方法可以使这些API中的一个或两个工作以获得其他租户托管的应用程序,但两者的文档都相当简短,我还没有能够弄明白。

据我所知,大多数使用图API的文档或提供的服务主体和应用程序都是为那些试图让他们自己的应用程序显示在他们的租户的UI而不是工具的人而设计的它旨在监视我正在尝试的其他应用程序。

最后,我应该提一下,我的最终目标是尽可能多地收集关于应用程序对象中现有的应用程序的元数据,该应用程序对象似乎只包含徽标和一些其他范围等。在服务主管中找不到。最终,我正在寻找一种方法来将点与第三方应用程序条目连接起来,这些条目具有更丰富的信息。到目前为止,我也一直感到沮丧,因为他们似乎没有与服务主体或应用程序对象共享任何可靠的唯一标​​识符,这将允许我连接点。单独在应用程序名称上建立连接似乎不是一个启动器,特别是因为看起来应用程序名称可以在UI中更改(由于某种原因)并影响服务主体中的名称。

但是,对于那些可能未在官方市场发布的应用程序,Get Application API可能是我能做的最好的。

非常感谢任何帮助。谢谢!

0 个答案:

没有答案