我们正在使用WCF构建一个RESTful API(目前.Net 3.5,但很快将转向.Net 4).我们有一个功能框架,但目前没有安全保障.它需要可以从.Net应用程序以及iOS,Android和Web应用程序访问.
我们想使用此处和此处描述的HMAC身份验证方案,但在描述如何验证哈希时,这两个示例似乎都分崩离析.第一个示例无法描述UserKeys对象(哈希表?),第二个示例缺少客户端和服务器端的GetUserKey方法.
任何人都可以解释如何在这些示例中生成/存储/检索/使用"用户密钥"/令牌,或者提供如何在RESTful WCF服务中使用HMAC授权的更好示例(如果可能的话,还有源代码)?
编辑: 经过更多的研究,我们确定我们需要更多的" 授权 "技术而不是" 身份验证 "技术(语义?).我们实施了基本授权并保护了SSL背后的API.基本授权使用与Web请求相同的"授权"标头作为HMAC 身份验证方案,但传递用Base64编码的用户名:密码字符串而不是令牌.这允许我们针对我们的数据库自定义验证用户,以确定用户是否获得许可并具有访问所需API方法的适当安全权限.
我们当然愿意听取有关如何完成自定义用户名/密码验证的其他选项以及其他保护API的方法.