我们目前只使用引用令牌作为访问令牌。这让我想知道我们是否可以通过包含一个具有非常长的有效性的自签名X509证书来跳过整个证书管理地狱并将其存储在我们的源代码中(私有github) - 停止尖叫,这可能很快就会有意义
我看到的最糟糕的情况是,有权访问私钥的人(即可以访问我们的github存储库的任何员工或部队)可以发出任何JWT并在客户端中使用它(有角度) - 但是那个'客户端。 API通过IdentityServer访问令牌验证进行保护,并且所有客户端都配置为使用引用令牌。
另一个可能的缺陷是,如果我们添加了一个使用JWT访问令牌的客户端,但我真的看不到这种情况。
对我而言,在源代码控制下使用长期自签名证书似乎是最容易和最好的(-ish)解决方案这个案例 - 除非我忽略了某些事情。我们从不使用SSL证书或类似证书。我只关注IdentityServer4签名凭证以及独家使用参考令牌。
否则我们必须以某种方式获得证书翻转(在运行时),证书管理等运行。我想我们可以实现ISigningCredentialStore
来管理证书的加载位置 - 但这仍然让我们知道如何处理Docker swarm(或只是普通的Docker容器)中的证书。
我在这里遗漏了什么吗?这个解决方案会有任何缺陷吗?
答案 0 :(得分:1)
你能不能只查看它?
像这样var cert = new CertificateService().GetCertificate(appSettings.CertificateName, StoreName.TrustedPeople, StoreLocation.LocalMachine);
services
.AddSigningCredential(cert);