首页 > 解决方案 > 在 IdentityServer4 中生成永不过期的令牌

问题描述

我有一个运行良好的应用程序(ASP.Net Core 2.2,IdentityServer4)。现在我需要对我的应用程序中的一些设备或应用程序进行身份验证,以让它们调用我的 API。

我已经阅读了这些链接:

IdentityServer4 访问令牌生命周期

永不过期的不记名令牌

但这些不是我需要的。

我需要进行某种永不过期的身份验证,而我只是手动将其过期。什么是正确的解决方案?任何想法,将不胜感激。

标签: authenticationidentityserver4restful-authenticationjwt-auth

解决方案


也许您可以使用Reference Tokens,不要被 Refresh Tokens 弄错了。

从文档中:

使用引用令牌时 - IdentityServer 会将令牌的内容存储在数据存储中,并且只会将此令牌的唯一标识符发回给客户端。然后,接收此引用的 API 必须打开与 IdentityServer 的反向通道通信以验证令牌。

所以参考只是参考。它不包含有关安全性或过期的信息。引用的信息存储在数据存储中,并且只能由接收引用令牌的资源使用反向通道通信访问。引用保持有效,直到它从数据存储中删除(令牌被撤销)。

为了完成这项工作,您应该在客户端和 api 中使用AddIdentityServerAuthentication来处理和验证引用令牌。您可以将客户端配置为使用引用令牌,如下所示(如文档所述):

client.AccessTokenType = AccessTokenType.Reference;

该文档还提到了 api 的一个秘密。


推荐阅读