如何在 Office 365 Outlook 加载项中获取 Azure AD 访问令牌(调用 Graph API)?
How to obtain Azure AD access token(to call Graph API), inside the Office 365 Outlook add-in?
我正在构建 Office 365 Outlook 加载项。我想从那个加载项调用 Graph API,是否可以在不要求用户再次登录应用程序的情况下获取访问令牌?
is it possible to get the access token without asking user to login again for the app?
不,你不能。
在 Outlook 加载项中,有一个名为 getUserIdentityTokenAsync 的 JavaScript API。通过调用此 API,您可以获得 Exchange Identity 令牌,但您不能使用此令牌访问图 API。
要从 Outlook 加载项中的 Exchange 服务器获取更多信息,您可以考虑将 EWS 请求作为替代方法。
这里有一个示例供您参考
Office 加载项和 Graph API 之间没有单一的登录。您可以使用此 article 中的方法。您将了解如何在登录期间最大限度地减少用户操作,并缓存刷新令牌以在将来获取访问令牌。
Microsoft 现在使这成为可能。现在它处于预览状态,并表示它仅适用于 "Desktop",我不确定这是否意味着桌面 Outlook 而不是 Outlook Web,或者它可能只是意味着不是通过移动应用程序的 Outlook。
https://dev.office.com/docs/add-ins/develop/sso-in-office-add-ins
我还没有弄清楚如何实际实施他们讨论的令牌交换,但如果我找到它会在这里更新。
我正在构建 Office 365 Outlook 加载项。我想从那个加载项调用 Graph API,是否可以在不要求用户再次登录应用程序的情况下获取访问令牌?
is it possible to get the access token without asking user to login again for the app?
不,你不能。
在 Outlook 加载项中,有一个名为 getUserIdentityTokenAsync 的 JavaScript API。通过调用此 API,您可以获得 Exchange Identity 令牌,但您不能使用此令牌访问图 API。
要从 Outlook 加载项中的 Exchange 服务器获取更多信息,您可以考虑将 EWS 请求作为替代方法。
这里有一个示例供您参考
Office 加载项和 Graph API 之间没有单一的登录。您可以使用此 article 中的方法。您将了解如何在登录期间最大限度地减少用户操作,并缓存刷新令牌以在将来获取访问令牌。
Microsoft 现在使这成为可能。现在它处于预览状态,并表示它仅适用于 "Desktop",我不确定这是否意味着桌面 Outlook 而不是 Outlook Web,或者它可能只是意味着不是通过移动应用程序的 Outlook。
https://dev.office.com/docs/add-ins/develop/sso-in-office-add-ins
我还没有弄清楚如何实际实施他们讨论的令牌交换,但如果我找到它会在这里更新。