当前位置: 首页 > 知识库问答 >
问题:

如何让Outlook web加载项访问Outlook 2016上的REST API令牌

马野
2023-03-14

我的Outlook web外接程序正在使用Office.Context.Mailbox.GetCallbackTokenAsync方法,在选项中传递“is rest=true”。这是为了获得一个授权令牌,我可以使用它向Outlook REST API发出请求。这在Outlook 2019、OWA和Office 365 Windows桌面客户端上运行良好,但在Outlook 2016上不起作用。尝试对REST API使用检索到的令牌返回403状态。

已考虑的潜在备选方案

  • 调用getCallBackTokenAsync并在Outlook 2016上传递iREST将返回一个EWS令牌-Exchange.Callback.v1。但是,由于外接程序正在将检索到的令牌传递给发出REST API请求的服务器,因此无法将该服务器更改为也支持EWS令牌,而不需要比修改外接程序代码更长的时间。
  • 我查看了从outlook-win32-16.02.js获取相关的isRest代码,以便自己进行调用。我已经对Window.External执行了令牌调用,但虽然这在Outlook 365上工作,但在Outlook 2016上没有成功返回,所以我假设基础客户端不支持该操作,而不是仅Office.js库没有公开它。
window.external.Execute(12, [JSON.stringify({"isRest" : true, "itemNumber": "1"})], function(result){console.log('Result is: ' + JSON.stringify(result));});
  • 考虑重写由EWS令牌的getCallbackToken调用向服务器发出的请求,并将XML正文修改为REST令牌检索等价项,但重写XMLHttpRequest.Send仅对OWA有影响。Outlook desktop client中似乎没有使用它来发出EWS调用以检索令牌。
  • 当前,我正在研究是否可以手动对Exchange服务器进行GetClientAccessToken调用(Office.js MakeWsRequestAsync方法不支持此调用),但是,我看不到为请求以及需要在请求正文中传递的Id和ParentImd属性获取有效身份验证标头的方法。getCallbackToken中的EWS令牌未被授权执行GetClientAccessToken调用。

共有1个答案

萧阳波
2023-03-14

当前不支持在Outlook 2016中检索REST令牌。

另一种选择是使用OAuth。外接程序开发人员可以注册一个appId,并让外接程序用户通过一次性同意流进行身份验证。有关如何使用oauth的文档可以在这里找到。

 类似资料:
  • 问题内容: 我在Windows 7计算机上运行Xampp,想知道是否以及如何通过命令行运行xampp命令。像php phpfile.php这样的命令 任何意见,将不胜感激。 问题答案: 您可以按照其他答案中的说明设置 环境变量 (如此处) 要么 您可以以管理员身份打开“ 开始” >“ CMD ”并编写

  • 我有一个Spring mvc应用程序,它使用openjpa 2.1.1作为它的持久性框架。它在STS中作为Maven项目开发,并在vFaric TC Server(Tomcat 7)上本地运行。 当我们首次将war部署到Websphere 8.5时,我们遇到了类加载器与war文件中的以下3个openjpa JAR冲突: geronimo-jpa_2.0_spec-1.1。jargeronimo-j

  • 我想用当前的方法加密JWT负载,比如对称或非对称加密方法。我的问题是,如果我使用这些方法,javascript需要在客户端对我的数据执行任何操作?还是加密和验证的所有部分都将在服务器端完成?在本文中,他们说,如果需要加密负载,则必须存储公钥(由于RSA或…)等加密算法的缘故)。为什么?如果我需要加密有效负载,为什么我们需要在jwt令牌中存储公钥(或任何密钥)?有没有办法只在服务器端对称加密有效负载

  • 我已经用C#启动了一个Selenium项目。试图等待页面完成加载,然后才进行下一个操作。 我的代码如下所示: 在LoginPage.SelectRole(TestCase.orgUnit)中: 我搜索元素RolehierachyLabel。我一直在尝试使用多种方法来等待页面加载或搜索允许一些超时的元素属性: 你将如何解决这个障碍?

  • 我感到困惑的是,在向授权服务器发送授权请求时,似乎没有标准的方法来指定访问令牌的受众。 OAuth2将访问令牌指定为不透明字符串;规范中只有一处提到了“观众”,即访问令牌可以是“观众限制的”。许多最近的授权服务器实现似乎产生了JWT访问令牌,JWT指定了受众(aud)声明。 据我所知:-Auth0使用“audience”参数-Connect2id使用“resource”参数-Identity Se

  • 我正在制作SPA,并决定使用JWT进行身份验证/授权,我读过一些关于令牌与Cookies的博客。我理解cookie授权是如何工作的,也理解基本令牌授权是如何工作的。问题是,我看不出刷新令牌如何适合它,在我看来,它降低了安全性。让我解释一下,就像我看到的那样: 通过用户名验证用户时 > 服务器还需要不断地查找存储,以查看什么用户,cookie点。 通过用户名验证用户时 这很容易受到XSS(跨站点脚本