我在我们所有的环境(开发、测试、生产)中使用标识服务器4 (.Net Core2.2),我们有一个启动程序如下
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddAspNetIdentity<ApplicationUser>()
.AddInMemoryClients(Configuration.GetSection("IdentityServer:Clients"))
.AddConfigurationStore(Configuration.GetSection("CosmosDB"))
.AddOperationalStore(Configuration.GetSection("CosmosDB"))
.AddProfileService<ProfileService>();使用在调试/开发环境(tempkey.rsa).中生成的临时密钥文件
这是目前正在运行的用户身份验证和索赔处理。
我意识到,除了本地/开发之外,在任何其他环境中都不推荐这样做,但是我们即将从ADFS-3迁移到ADFS-4,这将改变体系结构,因此我们将不再需要上面的代码(并且可能不需要Identity 4的实例)。
我还意识到,在解决方案中,对于
但是,对于如果在ADFS端的证书被更新(这可能发生在迁移之前)会发生什么,我有几个问题--如果发生这种情况
发布于 2022-01-19 11:04:25
您不应该在生产中使用AddDeveloperSigningCredential,因为您可能(取决于您的设置)在重新部署时松开密钥,如果发生这种情况,将生成一个新的签名密钥。这反过来意味着所有已经发行的令牌都将失效。
更好的方法是使用AddSigningCredential方法并将密钥存储在IdentityServer之外。
当您执行密钥旋转时,您可以保留旧密钥,以验证已经发出的令牌,然后使用AddValidationKey添加已分发的旧签名密钥。
请参阅https://docs.duendesoftware.com/identityserver/v5/fundamentals/keys/
是的,RSA签名密钥没有任何过期时间,但是,有时您在证书中包装和传输RSA密钥,然后添加日期/时间组件。
https://stackoverflow.com/questions/70766236
复制相似问题