【发布时间】:2014-04-13 09:39:24
【问题描述】:
我想使用与 AWS 签名流程类似的技术为 Web 应用程序 API 实施身份验证。服务器将为用户 Web 浏览器客户端呈现 html。该应用程序还将为非浏览器客户端(iphone、android、黑莓、ipad 等)返回 json。我正在尝试编写身份验证代码,以允许单个用户从多个客户端登录(记住)应用程序。从任何一个客户端注销不应撤销所有其他客户端的令牌/cookie。
当用户注册或登录时,客户端(尤其是本机移动客户端或 Web 浏览器)如何获取私钥/密钥?我的理解是不应该通过网络发送密钥?可以只通过 ssl 发送吗?
对于浏览器客户端,私钥是存储在 cookie 中还是其他形式的本地存储中? IE。对于通用 api 令牌身份验证,令牌将存储在浏览器上的 cookie 和手机上的数据库中
当客户端是浏览器时,如何用私钥对请求签名进行签名?即生成 id + 私钥 + 请求的哈希。对于本地移动客户端或服务器到服务器的通信,我相信有一些库可用于生成签名请求。当请求来自浏览器时,这是如何工作的?
如果需要在多个客户端(平板电脑、iphone、工作计算机、家用笔记本电脑等)上记住用户,用户是否需要为每个客户端拥有一组私钥/令牌?
我会在 Rails 中使用 Devise,但它需要您编写自己的令牌身份验证代码。
我也在研究 OAuth,问题 2 和 4 都适用,但我真的很想研究 AWS 方法。
【问题讨论】:
-
能否请您从您正在谈论的场景的介绍性段落开始,而不是直接跳入没有上下文的问题?我不太清楚你在说什么。
标签: security authentication language-agnostic hmac