基于令牌的wcf限制

本文关键字:wcf 限制 令牌 于令牌 | 更新日期: 2023-09-27 18:17:51

我目前有一个基于WCF Rest的API,它使用基于令牌的身份验证来对用户进行身份验证。但是,我现在需要实现一个额外的安全层,该层基于在核心层中进行任何API调用之前生成的令牌来限制用户。

工作流程如下:1)用户调用API-1, API-1返回令牌。2)用户使用该令牌并对核心API进行调用。Core API应该识别令牌,并且只根据令牌向用户提供特定的访问权限。

例如,我有一个FormService类,它有3个方法:SaveForm, GetForm, AddUserToForm。我需要生成一个令牌,让FormService只允许访问SaveForm或GetForm或所有的方法。如果用户没有访问权限,则返回未经授权的错误消息。我真不知道该如何处理这个问题。我不希望有静态映射表,每次有人调用时我都要查询它来检查访问。我也不确定如何生成这些令牌,然后可以用于以后的特定访问。如果有什么想法会有帮助的

基于令牌的wcf限制

我亲自将令牌存储在WCF缓存中。当用户第一次调用您的API时(假设他没有登录,调用是身份验证),API验证身份(登录/密码),生成令牌,将其发送回用户并将其存储在缓存中(我个人每两个小时使缓存失效一次)。

要生成令牌,我使用以下命令:

var time = BitConverter.GetBytes(DateTime.UtcNow.ToBinary());
var key = Guid.NewGuid().ToByteArray();
token = Convert.ToBase64String(time.Concat(key).ToArray());

关于这个主题的答案真的很好。您可以在这里找到关于基于令牌的身份验证的更多信息

希望能有所帮助。