OpenIddict 的临时关键问题

Posted

技术标签:

【中文标题】OpenIddict 的临时关键问题【英文标题】:Ephemeral key issue with OpenIddict 【发布时间】:2021-11-20 08:09:42 【问题描述】:

在 OpenIddict 配置中使用 Ephemeral 密钥,当您让服务器运行一段时间时,jwt 配置会更改: https://serverIp/.well-known/jwks

您可以在孩子值上看到此配置更改 “孩子”:“YKAPTPYELUM23G4M2D6NVMAGBAQRBRNHUZBAPEJN”

这意味着资源验证将在孩子更改后始终抛出 401 消息。

有谁知道是否有一个设置可以在不使用静态安全密钥的情况下禁用这个孩子的再生?¿

【问题讨论】:

【参考方案1】:

API JWT 库旨在自动处理此问题:

每次收到 API 请求时,最常见的用法是在 JWT 标头中有一个 kid 字段

库在其缓存中查找,如果未找到该值,库将下载 JWKS 密钥,然后缓存它们以供后续 API 请求使用

与此同时,openiddict 等授权服务器可以按需或自动更改其令牌签名密钥,只要新密钥获得新的kid

这里有一些 example API code 是这样工作的,其他技术中的 JWT 库也有同样的工作方式。当然,值得在您自己的 API 中进行测试。

【讨论】:

以上是关于OpenIddict 的临时关键问题的主要内容,如果未能解决你的问题,请参考以下文章

将google idToken替换为本地openId令牌c#

SignalR 和 OpenId 连接

SignalR 和 OpenId 连接

使用 OpenId Connect 进行基于声明的身份验证

OpenIddict:当两个或更多服务实例计数时出现 401 错误

OpenIddict使用教程