我们想要验证只有我们的设备可以使用我们的扩展程序,因此设备需要提供一个 ID 并放入我们的允许列表中。
类似的问题之前曾被问过,答案归结为“扩展程序无法访问唯一的设备 ID”——隐私问题。给定的替代方案是存储一些数据,但这对于共享设备没有用,因为共享设备预计多个帐户将具有具有单个设备 ID 的扩展。
但是,我们的扩展程序用于我们业务中 IT 可以放置文件的设备。例如,
C:\Program Files\Mozilla Firefox\distribution\
包含自动安装我们的扩展的策略,我可以在此处添加文件,而非管理员用户无法编辑/删除。
有没有办法将我们自己的设备签名放在分发/安装文件夹中,然后让扩展程序读取它?
您想要做的显然是向扩展程序验证机器。
扩展无法直接读取文件系统。如果可以,那么恶意扩展(实际上只是带有一些特殊 API 的 JavaScript)就可以将敏感文件导出到互联网。 JavaScript 可以通过交互式文件选择器读取文件系统,但我认为这不是您想要的用户体验。
我认为答案在于另一个方向,虽然我自己没有尝试过,所以这是一个建议而不是答案。
我认为您在研究是否可以利用操作系统的数字证书存储方面可能会取得更大的成功。那么问题就变成了验证机器在不可导出的存储中是否具有证书的私钥。 (机器可以验证地签署随机挑战吗?证书颁发机构是公司的CA吗?诸如此类的事情。)
想必所有用户都有自己的登录名。这将使新问题成为:
由于这些证书仅供内部使用,您可能不需要花钱购买大量证书基础设施,但这取决于您企业的规模。
无论如何,我认为我们已经远远超出了互联网公告板的范围。这就变成了一个关于如何编写 Firefox 扩展之外的问题。