我正在使用IdentityServer4来保护一些webapis . 由于我们的客户设置有一个怪癖,我们需要支持一个设置,我们将有多个运行IdentityServer4的应用程序向不同的客户发出令牌 . 然而,这些客户最终会打电话给一些共同的服务 .
因此,这些公共服务需要能够从IdentityServer4的多个实例验证令牌 . 由于您在启动时向资源服务器注册了IdentityServer的实例,我认为只要所有IdentityServers以相同的方式签署令牌,它就会起作用 .
我假设将IdentityServer设置为使用共享X509证书将允许在配置为使用不同IdentityServer的资源服务器上验证来自一个IdentityServer的令牌,但似乎并非如此 . 从Server1请求令牌,然后使用Server2将其提交到资源服务器不起作用,即使它们都使用相同的证书 .
有没有办法让这项工作?
1 回答
您使用的是JWT还是参考代币?
参与令牌由持有权限的身份服务器验证 . 可能很难使用不同的身份服务器并验证由另一个提供的令牌而不是验证它的令牌 . 如果您使用的是JWT,则可以使用Discovery-Endpoint捕获公钥 . 然后你应该能够使用它来验证签名......
你可以这样做: