如何在Office 365 Outlook加载项中获取Azure AD访问令牌(用于调用Graph API)?

问题描述:

我正在构建Office 365外观加载项。从那个加载项我想调用图形API,是否有可能获得访问令牌而不要求用户再次登录应用程序?如何在Office 365 Outlook加载项中获取Azure AD访问令牌(用于调用Graph API)?

微软现在已经做到了这一点。现在它在预览中并且只对“桌面”说,它不知道这是否意味着桌面Outlook而不是Outlook Web,或者它可能只是通过移动应用程序而不是Outlook。

https://dev.office.com/docs/add-ins/develop/sso-in-office-add-ins

我仍然还没有想出如何真正实现他们讨论了代币兑换,但如果我发现它会更新在这里。

是否可以获取访问令牌而不要求用户再次登录应用程序?

不,你不能。

在Outlook加载项中,有一个名为getUserIdentityTokenAsync的JavaScript API。通过调用此API,您可以获得Exchange身份标识,但不能使用此标记访问图形API。

要从Outlook加载项中的交换服务器获取更多信息,可以考虑将EWS请求作为替代方法。

这里是供您参考

Outlook-Add-in-JavaScript-MakeEWSRequest

样本没有单一唱上一个Office插件和图形API之间。您可以使用此方法从article。您将了解如何在登录期间最大限度地减少用户操作,并在将来获取访问令牌时缓存刷新令牌。