按构建方式本地部署
没有 SaaS 模式,也没有托管的后备方案。Doconut 以您引用的 DLL 形式提供;如果您的服务器离线,渲染仍然可以工作。缺少上传路径是架构的属性,而不是某人可以切换的配置设置。
Doconut 是一个您自行托管的 .NET 库,而不是您上传的文档服务。文件在您自己的基础设施内完全打开、渲染和提供——这正是它在受监管工作负载中可行的原因,因为文档本身永远不能跨越组织边界。
您的基础设施 — 信任边界
您的应用程序
从文件所在的任何位置读取文件:本地磁盘、网络共享、S3、Azure Blob、数据库列。
Doconut 中间件
在您的管道中使用 AddDoconut() 和 UseDoconut() 注册。运行在您的进程中,使用您的身份,在您的网络内。
页面图像
Viewer.OpenDocumentAsync() 渲染分页的页面图像并返回不透明的会话令牌。源文件从不交给浏览器。
浏览器
JavaScript 小部件通过会话令牌向您自己的端点请求页面。它从不看到文件路径、存储 URL 或原始字节。
渲染时从不接触
架构
托管的查看器服务通过接收您的文件来工作。Doconut 通过从不接收文件来工作。文档由您自己的进程读取,由您自己的进程栅格化为页面图像,并由您自己的进程流式传输到浏览器——Doconut 是执行此工作的库,而不是传输的参与方。
安全模型
没有 SaaS 模式,也没有托管的后备方案。Doconut 以您引用的 DLL 形式提供;如果您的服务器离线,渲染仍然可以工作。缺少上传路径是架构的属性,而不是某人可以切换的配置设置。
OpenDocumentAsync() 返回一个不透明的字符串,而不是文件路径或客户端可以篡改的标识符。浏览器无法枚举文档、猜测相邻的令牌,或将令牌重写为不同的文件。将令牌视为机密:绝不要记录它们,也不要在查看器之外在客户端持久化它们。
Doconut 从不决定谁可以读取文档。只有在您自己的授权检查通过后才调用 OpenDocumentAsync(),因此查看器会继承您应用程序已经实施的任何访问控制——角色、租户、记录级别权限,全部都包括在内。
浏览器接收渲染后的页面图像,而不是源文档。能够查看合同的用户无法轻易导出原始 DOCX,泄露的页面图像也不包含源文件中的修订痕迹、批注、隐藏列或元数据。
加密和受密码保护的文件在服务器端使用您代码提供的密码打开。密码仅在您自己的应用程序内部跨进程传递——绝不传递给客户端,也绝不传递给我们。
授权是通过 options.LicensePath 或 Viewer.DoconutLicense(path) 解析的本地 .lic 文件。没有激活回调,也没有通过网络进行的运行时授权检查,这正是实现空气隔离部署的关键。
合规
在这里,诚实的框架比一堆标志更重要。Doconut 是一个库,而非服务提供商。我们从不接收、存储或处理您的文档,这意味着在您部署时我们不会成为处理者、子处理者或业务合作伙伴。这消除了整类文书工作——但部署相关的控制仍由您负责操作和提供证据。
由于受保护的健康信息从未到达 Doconut,因而不存在需要通过 BAA 进行覆盖的业务合作关系。记录和 DICOM 研究在您自己的环境中呈现。安全防护本身——访问控制、审计日志、静态和传输中的加密——仍然是您的责任,在您已经运行的应用程序中执行。
个人数据保持在您放置的地方。查看器不会引入跨境传输,因为根本没有传输:文档在您部署的服务器所在的同一司法辖区内读取和呈现。驻留成为托管决策,而非供应商谈判。
没有外部互联网访问的部署是一种受支持的配置,而非变通方案。将 DLL 和 .lic 文件打包,安装到安全区内,查看器将在许可证覆盖的版本范围内无限期运行。
Doconut 并未宣传 SOC 2、ISO 27001 或 HITRUST 认证,您也不应将其表述为已认证。安全论点是架构性的:供应商从不出现在数据路径中。如果您的审计员需要控制叙述,这就是叙述。
部署
经典的目标。IIS 或 Kestrel,运行在您自己的数据中心或您控制的云虚拟机上。
.NET 8 支持。将查看器作为您自己的镜像的一部分进行部署,并通过挂载的密钥将许可证文件排除在层之外。
负载均衡器后面的多个节点共享渲染缓存,因此在一个节点打开的会话在另一个节点仍然可读。
安装后在任何时候都不需要外部连接——渲染、转换、授权都不需要联网。
运营
这些都不陌生。它们是实际部署中最常出错的少数几件事,按它们通常出现的顺序排列。
不。Doconut 是一个在您的应用程序内部运行的库。没有上传端点、没有托管的渲染层,也没有携带文档内容的遥测通道。如果您的服务器无法访问互联网,查看器仍然可以正常渲染。
不能通过查看器实现。浏览器接收由不透明会话令牌标识的渲染页面图像。如果您想要下载按钮,需要自行实现——这意味着是否发布源文件的决定仍然是您代码中的显式选择。
由 Viewer.OpenDocumentAsync() 返回的一个不透明字符串,JavaScript 小部件使用它来获取页面。它不是文档标识符、不是路径,也不是可以存储或重复使用的东西。请将其视为具有短生命周期的持有者凭证。
不。授权通过本地 .lic 文件解析。没有激活调用,也没有周期性重新验证,这正是隔离环境安装能够工作的原因。
可以。渲染、转换和授权全部在本地完成。唯一需要互联网的地方是下载更新,您同样可以通过介质自行携带更新。
我们并未声称通过任一认证,您也不应将产品标榜为已认证。审计时相关的事实不同且通常更有力度:Doconut 从不出现在数据路径中,因此根本不存在供审计员评估的供应商环境。
您的代码在服务器端打开文档时提供密码。密码在您自己的进程中用于解密,绝不会传输到浏览器或其他任何地方。