我读过 oAuth、 Amazon REST API、 HTTP Basic/Digest 等等,但是我不能把它们都放在一起。这可能是最接近的情况-为移动应用程序创建 API-认证和授权
我想建立以 API 为中心的网站服务。所以(在开始的时候)我会在中间放一个 API,然后 网站(PHP + MySQL)会通过 CURL、 仿生人和 IPhone的网络接口连接起来。3个主客户端-3个 API 密钥。任何其他开发人员也可以通过 API 接口进行开发,他们可以获得自己的 API 密钥。API 操作会根据用户级别状态被接受或拒绝,如果我是一个管理员,我可以删除任何东西等,所有其他人只能操作他们的本地(帐户)数据。
首先,授权——我应该使用 oAuth + xAuth 还是我自己的某种实现(参见 http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/RESTAuthentication.html?r=9197) ?据我所知,在 Amazon 服务用户是 = = API 用户(具有 API 密钥)频道。在我的服务,我需要分离标准用户/帐户(谁注册的网站)和开发帐户(谁应该有他们的 API 密钥)。
所以我首先需要 授权 API 密钥然后是 对用户进行身份验证本身。如果我使用 Amazon 的方案来检查开发者的 API 密钥(授权他们的应用程序) ,我应该使用哪种方案来进行用户身份验证?
在(通过 HTTPS,HTTPBasic)发布我的用户名和密码后,我读到了通过 api.example.org/auth
获得令牌,然后在以下每个请求中转发它。如果我同时在 仿生人和 网站上登录,如何管理令牌?如果我只在第一次请求时(传输用户名和密码时)使用 SSL,而在其他请求上只使用 HTTP,那么中间人攻击怎么样?这不是这个例子中的一个问题吗