我正在与一个使用 Office 365 的大型企业客户合作,我们有一个在 azure 中运行的应用程序,如果他们没有从他们的公司机器登录,我们需要阻止某些操作..
原则上,我们希望在用户不使用公司管理的笔记本电脑时禁用“导出为 Excel”功能。
例如,如果我尝试从我的家用计算机登录到 OUTLOOK,我得到下面的图像,我怎样才能为我们的应用程序实现类似的功能?
我正在与一个使用 Office 365 的大型企业客户合作,我们有一个在 azure 中运行的应用程序,如果他们没有从他们的公司机器登录,我们需要阻止某些操作..
原则上,我们希望在用户不使用公司管理的笔记本电脑时禁用“导出为 Excel”功能。
例如,如果我尝试从我的家用计算机登录到 OUTLOOK,我得到下面的图像,我怎样才能为我们的应用程序实现类似的功能?
您可能想要的是某种 DRM(数字版权管理)。由于禁用导出不会阻止用户在公司笔记本电脑上导出文档,然后将其复制到另一台 PC。
如果您如此关心公司机密,我认为您应该应用跳转服务器。
可以限制只能对 jumpserver 进行操作的用户(将可访问的 ip 地址限制为 jumpserver ip)。通过jumpserver,可以监控用户的所有操作,包括录屏、网络访问记录、命令历史等。
有一个开源的jumnpserver,支持的功能比我提到的要多。但不幸的是,该文件是由中文编写的。或者您可能对azure-bastion等支付服务感兴趣。
也许您应该在只能在您的公司网络中访问的网络服务器上发布您的内部代码。这限制了对公司网络中计算机的访问,但也可以使用访客计算机进行访问。
这是第二种(不安全!但更轻量级)的方法来检测计算机是否在您的公司网络中(但可能是来宾计算机):
window.computerIsInCorporateNetwork=true
这并不安全,因为知道变量名称的每个人都可以通过浏览器控制台设置它。
第三种方法是你...
这并不安全,因为每个人都可以直接在浏览器中操作 JavaScript。
仅加密
仅加密选项可用Exchange Online
,您可以在 Outlook Web 上为邮件流规则选择此选项。并且从Outlook for Office 365
. 它加密电子邮件,收件人无法保存或导出文件。
另一种方法是通过指定更改文档的保护继承:
Set-IRMConfiguration -DecryptAttachmentForEncryptOnly $true
欲了解更多信息 看看这里。
如果您没有被迫使用 Microsoft Azure 登录,也许使用 Kerberos 是一个答案。
我不详细了解 Kerberos 的概念,但我认为对于 Kerberos,您在浏览器中安装证书,并使用此证书在 Kerberos 身份验证服务器上进行身份验证并获取另一个令牌。有了这个,您的浏览器会请求一项服务,该服务可能会提供带有您的 Excel 按钮的页面,也可能不提供。
如果您收到经过 Kerberos 身份验证的请求,则该计算机可能位于您的公司网络中,并且安装了有效的证书,这对于来宾计算机不正确。