【问题标题】:Changing the signing key doesn't invalidate existing tokens更改签名密钥不会使现有令牌无效
【发布时间】:2017-07-02 07:30:14
【问题描述】:

我在我的网络应用中使用 OpenIddict 并且刚刚替换了

.AddEphemeralSigningKey()

.AddSigningCertificate("my thumbprint")

我现在想确认实际上正在使用新证书,但是当我提交一个在使用旧(临时)密钥时创建的 access_token 时,它被毫无问题地接受。我希望它会被拒绝,因为网络应用程序正在使用不同的签名密钥!

或者,我是否误解了签名密钥的用途?

我发现 this 帖子表明签名密钥不用于签署使用 ASP.Net 核心数据保护堆栈时创建的访问令牌,我相信这适合我的场景,因为我没有使用 JWT 令牌或自定义令牌格式。

在这种情况下,签名密钥的用途和/或为什么需要它?

【问题讨论】:

    标签: asp.net-core openid-connect openiddict


    【解决方案1】:

    在这种情况下,签名密钥的用途和/或为什么需要它?

    正如您提到的帖子中所述,签名密钥仅用于签署 OpenIddict 颁发的 JWT 令牌(如果您选择 JWT,则包括身份令牌 + 访问令牌)。

    如果您想使用默认令牌格式复制“临时加密/验证密钥”场景,您可以要求 OpenIddict 使用临时数据保护器:

    public class Startup
    {
        private readonly IDataProtectionProvider _provider =
            new EphemeralDataProtectionProvider();
    
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOpenIddict(options =>
            {
                // ...
    
                options.UseDataProtectionProvider(_provider);
            });
        }
    
        public void Configure(IApplicationBuilder app)
        {
            app.UseOAuthValidation(options =>
            {
                options.DataProtectionProvider = _provider;
            });
    
            app.UseOpenIddict();
        }
    }
    

    您还可以覆盖数据保护选项,为您的整个应用程序使用临时数据保护器:

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDataProtection()
                .UseEphemeralDataProtectionProvider();
    
            services.AddOpenIddict();
        }
    
        public void Configure(IApplicationBuilder app)
        {
            app.UseOAuthValidation();
    
            app.UseOpenIddict();
        }
    }
    

    值得注意的是,签名密钥要求在最近的位中放宽:不再需要注册证书或临时密钥,除非您决定使用 JWT 访问令牌或启用隐式流动。因此,如果您使用密码流程,则不再需要添加密钥。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 2015-05-19
      相关资源
      最近更新 更多