的 编辑 强> :
自从我第一次写出答案以来,这已经有好几年了。已经广泛采用了支持Web的API和基于令牌的信任中继。
我没看过,但是 Windows Communication Foundation安全性 如果你正在寻找特定于WCF的东西,那将是一个很好的起点。
同时睁大眼睛看看主要玩家喜欢什么 Facebook的 , 谷歌 ,和 推特 是做。他们正在使用开放式协议 OpenID的 和 OAuth的 。起初,OAuth看起来很复杂,但您应该了解其机制。
在我看来,早期OAuth重新发明了SSL已经解决的许多轮子,并留下了一些安全漏洞。一个有趣的读物是 妥协Twitter的OAuth安全系统 。 Facebook的OAuth 2.0实施 和 谷歌的OAuth 2.0实施 通过在有意义的地方使用https来简化许多这些问题。这些必须读。
围绕OAuth的基本概念是信任中继。您希望第三方开发人员针对您的API制作应用,但最终用户无法始终信任这些应用。给他们密码,就像把钥匙交给王国。因此,用户在您的UI中键入密码,并且您的UI会使用访问令牌重定向到第三方。
构建安全的ASP.NET应用程序:身份验证,授权和安全通信 是对ASP.NET安全模型的一个很好的介绍。您可以跳过详细信息,因为现在大部分技术都已过时。
Web服务的特定概述是 Web服务安全性:Web服务增强(WSE)3.0的方案,模式和实施指南 。它说WSE,但基本概念仍然保持不变。
要获得有关WS-Security的更多详细信息,请阅读 使用WS-Security保护Web服务:揭开WS-Security,WS-Policy,SAML,XML签名和XML加密的神秘面纱 。
阅读上面的内容后,真正帮助我的是查看现有的实现 Amazon S3的身份验证 :
Amazon S3的身份验证http://docs.amazonwebservices.com/AmazonS3/2006-03-01/images/HMACAuthProcess_You.gif
Flickr Authentication API :
每个身份验证frob都是特定的 用户和应用程序的api 键,只能与之一起使用 键。 身份验证字符有效期为60 从创建时起的几分钟 或直到应用程序调用 flickr.auth.getToken,以哪个为准 更早。 只有一个认证frob per 每位用户的申请将在 任何一次。申请必须处理 已过期且无效 认证frobs并知道如何 更新它们。
每个身份验证frob都是特定的 用户和应用程序的api 键,只能与之一起使用 键。
身份验证字符有效期为60 从创建时起的几分钟 或直到应用程序调用 flickr.auth.getToken,以哪个为准 更早。
只有一个认证frob per 每位用户的申请将在 任何一次。申请必须处理 已过期且无效 认证frobs并知道如何 更新它们。
Twitter REST API
许多Twitter API方法都需要 认证。所有回复都是 相对于上下文 验证用户。例如,一个 尝试检索有关的信息 受保护的用户谁不是朋友 请求用户将失败。 对于 目前,HTTP Basic 身份验证是唯一受支持的 认证方案。什么时候 通过Basic Auth进行身份验证,使用 您的注册用户名或电子邮件 address作为用户名组件。 会话cookie和基于参数的 登录已知可以工作但不是 官方支持。 OAuth 基于令牌的认证方案将 不久将作为实验提供 测试版。
许多Twitter API方法都需要 认证。所有回复都是 相对于上下文 验证用户。例如,一个 尝试检索有关的信息 受保护的用户谁不是朋友 请求用户将失败。
对于 目前,HTTP Basic 身份验证是唯一受支持的 认证方案。什么时候 通过Basic Auth进行身份验证,使用 您的注册用户名或电子邮件 address作为用户名组件。 会话cookie和基于参数的 登录已知可以工作但不是 官方支持。
OAuth 基于令牌的认证方案将 不久将作为实验提供 测试版。
所以很高兴知道复杂的证书和PKI的东西,但世界似乎没有它就好了。
此外,还有 WCF安全指南 通过微软的模式&实践小组。看看这个。
渣
首先搜索维基百科的公钥基础结构(PKI),然后按照链接了解不同的部分。您不需要知道各种密码的加密算法,但如果您想真正了解WCF如何使用它,您需要了解这些概念。