加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

WCF,RESTful Web服务和自定义身份验证

发布时间:2020-12-14 21:40:55 所属栏目:资源 来源:网络整理
导读:我开始相信我是一个严重无能的程序员。经过大量的阅读后,我仍然无法弄清楚如何清理RESTful WCF服务的身份验证机制。 我试过一切: 在this guide之后,只有发现提出的认证机制是一个丑陋的黑客。 安装the WCF REST Starter Kit,只发现它已经过时了,已经被
我开始相信我是一个严重无能的程序员。经过大量的阅读后,我仍然无法弄清楚如何清理RESTful WCF服务的身份验证机制。

我试过一切:

>在this guide之后,只有发现提出的认证机制是一个丑陋的黑客。
>安装the WCF REST Starter Kit,只发现它已经过时了,已经被另一个项目模板所取代了。
>安装said project template,只是发现它没有提供自己的任何认证机制。
>安装an IIS module that provides custom authentication functionality at transport level,只有找出作者提供的零文档。只有找出我需要实现一个MembershipProvider。 (我想提供一个UserNamePasswordValidator。)

有没有任何理智的方式来实现RESTful WCF服务的身份验证机制?

解决方法

当我正在调查如何为自己的WCF RESTful服务实现安全性时,我花了一些时间来研究其他流行的服务,如flickr和amazon如何实现自己的安全性 – 假设他们可能花费更多的时间来思考它。 Flickr的 documentation特别帮助我形成了我的签名和请求。

最后,我为我的服务选择了一个HMAC(基于哈希的消息认证代码)认证方案。

我创建了一个自定义的HMAC ServiceAuthorizationManager来验证每个请求的签名,每个请求包含以下内容:

>用户令牌
>时间戳
>随机数
>签名

使用该信息,管理员可以从其令牌中查找用户的秘密,并可以使用提供的信息在服务器上重新创建签名。

我的签名由以下MD5哈希值组成(值按特定顺序连接在一起,并进行散列,从而可以在服务器上重复该值):

apikey
> userToken
>秘密
>时间戳
>随机数

我在短时间内将该内存存储在一个memcache实例中,以便快速检查任何重播攻击。在这段时间偏差(约10分钟)之后,时间戳用于拒绝任何其他旧请求。

如果有帮助,我可以发布我的代码片段。一般来说,我发现HMAC身份验证通常是最安全的方式,并且在任何将使用您的服务的客户端(而不仅仅是.NET)上都可轻松支持。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读