2017-07-25 132 views
2

我们的一位客户希望我们使用Office Server打开Word文档。 我已经安装了WAC服务器本地以在浏览器中打开Office文档。如何从WAC Office服务器生成WOPI访问令牌

本文档将在我们的系统中的iframe中打开。 我想从WAC服务器使用WOPI API生成访问令牌。 我做了一些调查,我发现Sharepoint正在这样做。 我可以在C#中使用HttpClient来提取此值。但它看起来很脏!我相信有更好的方法来生成此Access令牌?我是全新的SharePoint和WAC服务器。请帮忙。

Access Token Generated from SharePoint

有一个WOPI API文档。但是我仍然困惑如何构建这个请求?检查从文档中获取的这个图像。

enter image description here

预先感谢您:)

回答

2

你不一定需要实现/wopibootstrapper终点,也不是GetNewAccessToken方法。它们特定于Office Online (365) integration program

你的工作就是生成一个access_token,它将包含在你的应用程序中的WOPI帧的POST请求中(类似于你的问题中的图片)。

该令牌将由WOPI客户端(WAC/OWA/OOS服务器)使用。 WOPI客户端不需要能够解密令牌或以任何其他方式理解它。它只需要它并将其附加到针对WOPI主机的每个请求中。另一方面,WOPI主机需要能够验证令牌。令牌说明给定用户有权访问哪些资源。确保你的access_token好的概念understand。特别是:

访问令牌必须限定为单个用户和资源组合的范围。

您如何生成令牌完全取决于您。通常情况下,您会询问您的用户/角色存储(可以是Windows ACL存储,数据库或其他内容)给定用户是否可以访问某个资源并将该信息(声明)存储在令牌中并加密(如此它不能被伪造)。另一种选择是只包含关于用户的信息,并让WOPI主机在令牌验证期间找出许可(与用户/角色存储交谈)......这也是可能的,因为正如我前面提到的,WOPI客户端不会“不在意令牌中的内容。如果您完全不关心授权,您甚至可以设置access_token=xyz,并且从不在您的WOPI主机中检查它。

OfficeDev/PnP-WOPI中很好地演示了生成和验证令牌的过程。请参阅HomeControllerWopiSecurity类。

你可以在我的其他答案here中看到其他一些例子。

相关问题