访问令牌有两种形式 – 自包含或引用。

jwt令牌将是一个自包含的访问令牌 – 它是一个带有声明和过期的受保护数据结构。一旦api了解了密钥材料,它就可以验证自包含的令牌,而无需与发行者进行通信。这使得jwt难以撤销。它们将一直有效,直到它们过期。

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

您可以使用以下设置切换客户端的令牌类型:

client.accesstokentype = accesstokentype.reference;

identityserver提供了oauth 2.0内省规范的实现,该规范允许api取消引用令牌。您可以使用我们的专用内省处理程序 或使用身份服务器身份验证处理程序,它可以验证jwt和引用令牌。

内省端点需要身份验证 – 因为内省端点的客户端是api,您可以在以下位置配置秘密apiresource

var api = new apiresource("api1")
{
    apisecrets = { new secret("secret".sha256()) }
}

有关如何为api配置identityserver身份验证中间件的详细信息,请参阅此处。

github地址