WOPI Host实现问题
WOPI Host implementation issues
我们正在尝试按照 here 中记录的协议实现 Wopi Host 以与 OWA 集成,但我们在某些方面遇到了一些问题:
我们实现了一个只能查看文件的简单主机,即实现了CheckFileInfo和GetFile视图。在测试环境中,流程正常运行,我们能够在 OWA 中查看文件。关键是,当执行我皮验证器(web 和 docker 版本)时,我们在 GetFile 操作中遇到错误,因为验证器试图访问末尾有两个 // 的端点:
host/wopi/files/file_id//contents
这是一个只在验证器中发生的已知问题吗?为什么在WopiSrc的末尾附加两个'/'?我们如何解决这个问题?
我们在这里阅读了一些帖子,指出需要进行编辑才能正式验证我们与 Microsoft 的 OWA 集成。这是真的? CheckFileInfo 和 GetFile 视图难道不是实现一个只能查看文件的简单 Wopi 主机所必需的唯一视图吗?我们只是在 CheckFileInfo 操作的响应中传递所需的信息。我们没有使用 FileUrl 或任何其他参数,而是使用必需的参数。据我所知,这两个视图是使用 OWA 查看文件所需的唯一视图,例如 here
此外,当浏览器向 OWA 发送请求并传递令牌和 WopiSrc 时,我们在流程的第一部分遇到了问题。我们只能使流程通过 GET 方法在查询字符串中传递令牌。如果我们把它放在 JSON 和 POST 方法下,OWA 会简单地忽略它并且根本不会尝试通过 WopiSrc 调用 Wopi Host。有人可以就此事给我们一些启发,以弄清楚可能发生了什么吗?
此外,我们还停留在令牌验证的某个点上。当文档说令牌是由主机生成的时,文档是 crystal 清楚的,并且它对于单个 user/file 组合应该是唯一的。我们已经做到了。问题是,当请求来自 OWA 时,我们如何知道试图访问资源的用户是谁?例如,当 OWA 在 CheckFileInfo 和 GetFile 视图中调用主机时,它会向我们传递令牌。但是我们怎么才能知道用户信息呢?由于令牌是针对单个文件(我们在被访问端点的地址中有)和单个用户的,此时我们如何验证用户?我们没有发现任何 header 或占位符值可用于在收到来自 OWA 的请求时提取此信息,我们在这里有点迷路。我们考虑过将用户信息附加到令牌,然后将其提取回来,但据我所知,这样做只是确保令牌在请求之间没有被修改。有人知道吗?
关于使用 Microsfot 的验证需要编辑功能。
对于 POST 的情况,必须以 "form" 而非 JSON 的形式提交。
令牌验证是完全开放的,您必须选择您认为最好的方式。在这种情况下,JWT 是一个很好的选择。
我们正在尝试按照 here 中记录的协议实现 Wopi Host 以与 OWA 集成,但我们在某些方面遇到了一些问题:
我们实现了一个只能查看文件的简单主机,即实现了CheckFileInfo和GetFile视图。在测试环境中,流程正常运行,我们能够在 OWA 中查看文件。关键是,当执行我皮验证器(web 和 docker 版本)时,我们在 GetFile 操作中遇到错误,因为验证器试图访问末尾有两个 // 的端点:
host/wopi/files/file_id//contents
这是一个只在验证器中发生的已知问题吗?为什么在WopiSrc的末尾附加两个'/'?我们如何解决这个问题?
我们在这里阅读了一些帖子,指出需要进行编辑才能正式验证我们与 Microsoft 的 OWA 集成。这是真的? CheckFileInfo 和 GetFile 视图难道不是实现一个只能查看文件的简单 Wopi 主机所必需的唯一视图吗?我们只是在 CheckFileInfo 操作的响应中传递所需的信息。我们没有使用 FileUrl 或任何其他参数,而是使用必需的参数。据我所知,这两个视图是使用 OWA 查看文件所需的唯一视图,例如 here
此外,当浏览器向 OWA 发送请求并传递令牌和 WopiSrc 时,我们在流程的第一部分遇到了问题。我们只能使流程通过 GET 方法在查询字符串中传递令牌。如果我们把它放在 JSON 和 POST 方法下,OWA 会简单地忽略它并且根本不会尝试通过 WopiSrc 调用 Wopi Host。有人可以就此事给我们一些启发,以弄清楚可能发生了什么吗?
此外,我们还停留在令牌验证的某个点上。当文档说令牌是由主机生成的时,文档是 crystal 清楚的,并且它对于单个 user/file 组合应该是唯一的。我们已经做到了。问题是,当请求来自 OWA 时,我们如何知道试图访问资源的用户是谁?例如,当 OWA 在 CheckFileInfo 和 GetFile 视图中调用主机时,它会向我们传递令牌。但是我们怎么才能知道用户信息呢?由于令牌是针对单个文件(我们在被访问端点的地址中有)和单个用户的,此时我们如何验证用户?我们没有发现任何 header 或占位符值可用于在收到来自 OWA 的请求时提取此信息,我们在这里有点迷路。我们考虑过将用户信息附加到令牌,然后将其提取回来,但据我所知,这样做只是确保令牌在请求之间没有被修改。有人知道吗?
关于使用 Microsfot 的验证需要编辑功能。
对于 POST 的情况,必须以 "form" 而非 JSON 的形式提交。
令牌验证是完全开放的,您必须选择您认为最好的方式。在这种情况下,JWT 是一个很好的选择。