我们有一个现有的 API,我们的一些外部应用程序(Docker 容器等)使用它来回调我们的服务器。它使用 HMAC(共享秘密)系统进行保护。这在从一台服务器向另一台服务器进行调用时非常有效。
但是,我们即将开始慢慢地将我们的网站形式 .NET Web Forms 转换为 Angular (v6),我们希望 Angular 能够使用相同的 API 和相同的安全性。
我们设想的是一个单一的 Angular 库,称为类似AngularAPICall
,它在每个会话开始时实例化,它接受公钥和共享秘密作为参数。然后,每次 Angular 需要回调服务器时,它都会调用 内部的方法AngularAPICall
,该方法使用公钥和共享秘密来创建所需的哈希值并构建 API 调用标头。
但是,我们不确定在像 Angular 这样的原生客户端平台上使用 Shared Secret 时如何保证它的安全。我们在哪里/如何存储共享秘密?把它放在 web.config 中不会有任何好处。除了存储它,我们如何将它传递到客户端库AngularAPICall
并保证它的安全?我们如何保持它以便在调用之间保持它?
或者……我们是不是用错了方法?我们是否应该重新考虑如何处理我们在 Angular 中使用的 API 安全性?
慕容3067478
相关分类