Identity Server 4 撤销 Db 的访问令牌

Der*_*rek 4 access-token openid-connect identityserver4

我构建了一个 UI,用于管理 Identity Server 4 的用户存储中的用户。

用户可以锁定他们的帐户,此时我想撤销该用户数据库中保留的任何令牌。

据我了解,要做到这一点,我需要删除数据库中该用户的持久授权。

我在客户端应用程序中使用引用令牌,因此通过删除数据库中的令牌,它将自动取消对客户端应用程序中的用户的授权,因为对令牌的引用将无效。

这是解决这个问题的正确方法吗?

mod*_*777 5

如果我理解正确的话,您需要撤销之前颁发给客户端的令牌,否则该令牌将在一定时间内保持有效。

无需从数据库中删除令牌,Identity Server 4 已经为其提供了实现RFC 7009 的API 。请注意,这应该是从客户端使用的,并且您需要执行客户端身份验证。

来源: http: //docs.identityserver.io/en/release/endpoints/replication.html

您可以使用令牌撤销端点发送撤销请求:

POST /connect/revocation HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW

token=45ghiukldjahdnhzdauz&token_type_hint=refresh_token
Run Code Online (Sandbox Code Playgroud)

如果您需要在 Identity Server 4 主机上本地锁定用户并且您正在使用 ASP.NET Identity,则可以使用用户锁定: http://www.jamessturtevant.com/posts/ASPNET-Identity-Lockout/

  • `基本 Base64Encode(clientId + ':' + clientSecret)` (4认同)