用户使用他的Microsoft学校/组织帐户登录我们的系统后,我正在尝试检索有关他可用的应用程序的数据。
通常,人们会在输入例如portal.office.com时在所谓的“华夫饼干菜单”中看到此信息,如下图所示。
在检查网站的请求后,我发现它正在从https://portal.office.com/api/myapps/GetAllApp获取数据。但是,为了能够访问此资源,需要为office.com登录(即具有会话cookie),但我的应用程序使用基于令牌的身份验证 - 我已在Azure AD中注册了我的应用程序,授予了它访问某些服务(如MS Graph API)的权限,然后我使用令牌发出请求以访问这些服务。
问题是我可以从某些“Azure友好”应用程序(例如MS Graph API)获取华夫饼干菜单信息吗?或者,您知道检索此信息的其他任何方式吗?
感谢您提供任何帮助或提示。
答案 0 :(得分:1)
这不是通过Microsoft Graph支持/提供的。
我也不知道公开用户的华夫饼干菜单的API。我建议看看PowerShell for Office 365。鉴于此体验与O365 Web UI隔离,我怀疑这不是通过API浮出水面。
答案 1 :(得分:0)
我知道这个问题已经有一年了,但也许其他人很难从O365获取应用信息。
据我所知,没有可用于安全获取信息的公共API。但是通过一些解决方法,您可以从Office 365获取当前登录用户的应用程序:
以下是实现此目标所需的基本步骤:
<WebPartPages:AllowFraming runat="server" />
标记添加到页面 - &gt;这将允许您从任何不同的环境构建页面window.top.postMessage(suiteLinks, "*");
)推送到父框架https://login.microsoftonline.com/login.srf?wa=wsignin1.0&whr=<your adfs server>&wreply=https://<your tenant name>.sharepoint.com/pages/your-apps-proxy-page.aspx
)message
事件注册JavaScript事件侦听器以从SharePoint Online接收localStorage对象就是这样,现在您可以获得有关当前登录用户的应用程序的信息。感谢Smart Link,用户无需事先登录office.com即可获取会话cookie。
有关详细信息,请参阅此博客文章:https://sharepoint.cberger.ch/2018/03/09/office-365-app-launcher-on-prem/