在这种情况下,用于和/或为什么需要签名密钥?
正如你所提到的解释后,签名密钥只用于(如果你选择了JWT其中包括身份令牌+的访问令牌)签署OpenIddict颁发的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();
}
}
值得一提的是,签名密钥的要求是在最近的位轻松:注册certificat除非您决定使用JWT访问令牌或启用隐式流程,否则不再需要临时密钥或临时密钥。因此,如果您使用密码流,则添加密钥不再是强制性的。