首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WCF、RESTfulWeb服务和自定义身份验证如何实现?

WCF、RESTfulWeb服务和自定义身份验证如何实现?
EN

Stack Overflow用户
提问于 2018-03-27 01:08:54
回答 1查看 0关注 0票数 0

我开始相信我是一个非常无能的程序员。经过大量阅读,我仍然无法弄清楚如何干净地实现RESTful WCF服务的认证机制。

我尝试了一切:

  1. 遵循本指南,只有发现所提议的认证机制是一个丑陋的黑客攻击。
  2. 安装WCF REST Starter Kit只是为了找出它已经过时并已被替换为另一个项目模板。
  3. 安装所述项目模板,只是为了找出它不提供任何自己的认证机制。
  4. 安装一个在传输级别提供自定义身份验证功能的IIS模块,只有找出我需要实施的一个MembershipProvider。(我只想提供一个UserNamePasswordValidator。)

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

EN

回答 1

Stack Overflow用户

发布于 2018-03-27 10:35:55

当我调查如何为自己的WCF RESTful服务实现安全性时,我花了一些时间研究其他受欢迎的服务(如flickr和amazon)如何实现其自身的安全性 - 假设他们花费的时间比我想象的要多得多。Flickr的文档特别有助于塑造我的签名和请求。

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

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

  • 一个用户令牌
  • 时间戳
  • 教廷大使
  • 签名

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

我的签名包含以下MD5哈希值(值按特定顺序连接在一起并散列,以便在服务器上重复该值):

  • apiKey
  • userToken
  • 秘密
  • 时间戳
  • 教廷大使

为了快速检查任何重放攻击,我将短时间存储在memcache实例中一段时间​​。在那段时间之后(大约10分钟),时间戳用于拒绝任何其他旧请求。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档