【问题标题】:How to generate WOPI Access Token from WAC Office Server如何从 WAC Office 服务器生成 WOPI 访问令牌
【发布时间】:2017-07-25 14:19:56
【问题描述】:

我们的一位客户希望我们使用 Office Server 打开 Word 文档。 我已经在本地安装了 WAC 服务器以在浏览器中打开办公文档。

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

有一个 WOPI API 文档。但是我仍然很困惑如何构建这个请求?检查取自文档的这张图片。

提前谢谢你:)

【问题讨论】:

    标签: c# sharepoint office365 ms-wopi


    【解决方案1】:

    您不一定需要实现 /wopibootstrapper 端点或 GetNewAccessToken 方法。它们特定于Office Online (365) integration program

    您的工作只是生成一个access_token,该access_token 将包含在您的应用程序中WOPI 框架的POST 请求中(类似于您问题中的图片)。

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

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

    如何生成令牌完全取决于您。通常,您会询问您的用户/角色存储(这可以是 Windows ACL 存储、您的数据库或其他东西)给定用户是否有权访问某个资源并将此信息(声明)存储在令牌中并对其进行加密(所以不能伪造)。另一种选择是仅包含有关用户的信息,并让 WOPI 主机在令牌验证期间找出权限(与用户/角色存储交谈)......这也是可能的,因为正如我之前提到的,WOPI 客户端没有'不在乎令牌中的内容。如果您根本不关心授权,您甚至可以设置access_token=xyz,并且永远不要在您的 WOPI 主机中检查它。

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

    您可以在我的其他答案here 中查看其他示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2017-05-02
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多