我已经构建了一个用于管理Identity Server 4用户存储中用户的UI。
用户可以锁定他们的帐户,此时我想撤销该用户在数据库中持久保存的任何令牌。
我的理解是,为了做到这一点,我需要删除数据库中该用户的持久授权。
我在客户端应用程序中使用引用令牌,因此通过删除数据库中的令牌,它将自动取消对客户端应用程序中用户的授权,因为对令牌的引用将无效。
这是解决这个问题的正确方法吗?
答案 0 :(得分:1)
如果我理解正确,你需要撤销一个明确发给客户的令牌,否则该令牌在一段时间内仍然有效。
无需从数据库中删除令牌,Identity Server 4已为其提供实现RFC 7009的API。请注意,这是用于从客户端使用,您需要执行客户端身份验证。
来源:http://docs.identityserver.io/en/release/endpoints/revocation.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
如果您需要在Identity Server 4主机上本地锁定用户,并且您使用的是ASP.NET Identity,则可以使用用户锁定: http://www.jamessturtevant.com/posts/ASPNET-Identity-Lockout/