【问题标题】:subscribe to OIDC provider's certificate changes订阅 OIDC 提供商的证书更改
【发布时间】:2021-11-25 01:23:09
【问题描述】:

根据我读过的一些文章,.net 核心中的 AddJwtBearer() 将密钥缓存在 OIDC 提供程序的发现文档中,并使用它来验证请求中的身份验证令牌。根据下面的文章https://zhiliaxu.github.io/how-do-aspnet-core-services-validate-jwt-signature-signed-by-aad.html#configuration,它会获取一次密钥并缓存它们。但我的问题是,如果服务器更改它的证书,API 应用程序如何订阅它。谢谢。

【问题讨论】:

    标签: .net-core jwt openid-connect encryption-asymmetric jwk


    【解决方案1】:

    默认情况下,AddJwtBearer 直到每 24 小时重新加载签名密钥。如果你喜欢使用这样的代码,可以配置这个时间:

    .AddMyJwtBearer(opt =>
      {
         opt.AutomaticRefreshInterval = new TimeSpan(1, 0, 0, 0);
         opt.BackchannelTimeout = new TimeSpan(0, 0, 10); //10 seconds 
    }
    

    目前没有订阅 OIDC 提供程序中的签名密钥更改的机制。但你通常不需要那个。在许多 OIDC 系统中,旧的“签名”密钥会保留一段时间,以允许验证系统中的现有密钥。这意味着有一个用于签署新令牌的密钥,而旧密钥用于验证现有的签名令牌。

    希望这篇文章能更好地解释这一点: https://brockallen.com/2019/08/09/identityserver-and-signing-key-rotation/

    【讨论】:

      猜你喜欢
      • 2021-09-23
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      相关资源
      最近更新 更多