【问题标题】:"Get access on behalf of a user" for Outlook add-inOutlook 加载项的“代表用户获取访问权限”
【发布时间】:2019-09-18 19:40:20
【问题描述】:

我正在浏览 Implement single sign-on to your service in an Outlook add-in 的文档,其中讨论了 SSO 登录以获得授权。但由于 SSO 令牌身份验证仅处于预览状态,并且 Exchange 用户身份令牌不能用于 O365,我想知道 "Get access on behalf of a user" 是否可以在 Outlook 插件中用于访问 MS Graph API。?

我找不到使用“代表用户获取访问权限”的 Office 加载项的任何此类文档。

编辑 1:我一直在使用 getCallbackTokenAsync 从我的加载项调用 Outlook Endpoint API。但是由于一些unexpected behavior of /attachment API,我打算使用MS Graph API。我对这个问题的担忧是“代表用户获取访问权限”身份验证流程是否适用于 Outlook Win32、Outlook Mac、Outlook Mobile、Outlook Web 上的加载项。

【问题讨论】:

  • 你能提供你在哪个平台上开发这个吗? Outlook Win32、Outlook Mac 或 Outlook Web?
  • 我正在 Outlook Web 上开发此功能,计划通过加载项支持 Outlook Win32、Outlook Mac、Outlook Mobile、Outlook Web。
  • Mavi DOmates 下面提供的答案对您有用吗?
  • Mavi DOmates 提供的答案是否可以在 Outlook Win32、Outlook Mac、Outlook Mobile 和 Outlook Web 上使用加载项?我正在设置后端服务器以公开 API
  • 他们可以——这会让事情变得更容易。尽管如此,用户仍然需要经历弹出式体验(尽管不需要同意并且编码逻辑将立即获取访问令牌)

标签: microsoft-graph-api office-js outlook-web-addins


【解决方案1】:

查看此帖子的已接受答案:401 Unauthorized when trying to send emails from EWS Managed API

从本质上讲,如果您绝对需要使用 Microsoft Graph,可以通过多种方法来实现,而无需使用 SSO 机制。您可以使用网络套接字并传输访问令牌/刷新令牌。

Node.JS 的配置如下:

(在网络应用中)

  1. 要求用户点击一个按钮,将您的应用授权给他们的帐户。
  2. 将用户弹出到 OAuth 登录 URL。 (并展示一个微调器)

(在网页上)

  1. 设置您的重定向/回复网址,使其在收到访问令牌(或刷新令牌,如果您使用code 身份验证)后通过套接字将其传输给启动登录的用户。确保映射的一种方法是将唯一的 GUID 放在网络应用响应中(在 cookie 中或作为内联脚本)

EWS API(有一种方法可以让您调用 EWS/makeEwsRequestAsync)非常丰富。

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多