我有一个基于Identity Server 3的身份验证服务。它当前正在使用JWT,但是我打算切换到参考令牌,以便我们可以在用户注销客户端应用程序时撤消它们。我一直在研究此(Dominick Baier - Reference Tokens and Introspection),并且了解一种选择-我想实现的一种-是拥有用户服务-我的身份验证服务实现的一部分-使用Identity Server ITokenHandle接口撤消令牌。我无法在此接口上找到任何更多信息,或者如何在我的用户服务中实现它。
是否有人在其用户服务中完成了Identity Server 3令牌吊销,或者有人可以向我指出有关此方法的更多信息?
答案 0 :(得分:0)
原始帖子的注释中的两个GitHub帖子包含我需要的信息。我能够从JWT切换到参考令牌,然后在用户注销时实现对参考令牌的自动吊销。令牌类型的切换很简单,只需设置
AccessTokenType = AccessTokenType.Reference
在我的客户设置代码中。为了注销时撤销令牌,我首先添加了
idSrvFactory.Register(new Registration<DefaultClientPermissionsService>());
在Startup.cs中。然后在我的UserService中,将其添加到UserService构造函数中
public UserService(DefaultClientPermissionsService clientPermissionsSvc)
{
_clientPermissionsSvc = clientPermissionsSvc;
}
最后,仍然在我的UserService中,实现了
public override Task SignOutAsync(SignOutContext context)
{
string subjectId = GetSubjectId(context);
_clientPermissionsSvc.RevokeClientPermissionsAsync(subjectId, context.ClientId);
return Task.FromResult(0);
}