Identity Server 4 从 Db 撤销访问令牌
Identity Server 4 Revoke access tokens from Db
我已经构建了一个 UI 用于管理 Identity Server 4 的用户存储中的用户。
用户可以锁定他们的帐户,此时我想撤销为该用户保留在数据库中的任何令牌。
据我了解,要执行此操作,我需要删除数据库中该用户的持久授权。
我在客户端应用程序中使用引用令牌,因此通过删除数据库中的令牌,它会自动取消授权客户端应用程序中的用户,因为对令牌的引用将无效。
这样做正确吗?
如果我对你的理解是正确的,你需要撤销之前颁发给客户的令牌,否则该令牌将在一定时间内保持有效。
不需要从数据库中删除令牌,Identity Server 4 已经为它提供了一个 API,它实现了 RFC 7009。请注意,这应该是从客户端使用的,您需要执行客户端身份验证。
来源: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 身份,您可以使用用户锁定:
http://www.jamessturtevant.com/posts/ASPNET-Identity-Lockout/
我已经构建了一个 UI 用于管理 Identity Server 4 的用户存储中的用户。
用户可以锁定他们的帐户,此时我想撤销为该用户保留在数据库中的任何令牌。
据我了解,要执行此操作,我需要删除数据库中该用户的持久授权。
我在客户端应用程序中使用引用令牌,因此通过删除数据库中的令牌,它会自动取消授权客户端应用程序中的用户,因为对令牌的引用将无效。
这样做正确吗?
如果我对你的理解是正确的,你需要撤销之前颁发给客户的令牌,否则该令牌将在一定时间内保持有效。
不需要从数据库中删除令牌,Identity Server 4 已经为它提供了一个 API,它实现了 RFC 7009。请注意,这应该是从客户端使用的,您需要执行客户端身份验证。
来源: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 身份,您可以使用用户锁定: http://www.jamessturtevant.com/posts/ASPNET-Identity-Lockout/