相关疑难解决方法(0)

REST身份验证和公开API密钥

我一直在阅读REST,关于它,以及很多其他网站和博客都有很多问题.虽然我从来没有见过这个具体的问题...出于某种原因,我无法围绕这个概念进行思考......

如果我正在构建RESTful API,并且我想要保护它,我看到的方法之一是使用安全令牌.当我使用其他API时,有一个令牌和共享秘密......这是有道理的.我不明白的是,对休息服务操作的请求是通过javascript(XHR/Ajax)进行的,这是为了防止有人用FireBug(或浏览器中的"查看源代码")这样简单的东西来嗅出它复制API密钥,然后使用密钥和密钥冒充该人?

restful-authentication

92
推荐指数
3
解决办法
7万
查看次数

REST API授权和身份验证(Web +移动)

我已经阅读过有关oAuth,Amazon REST API,HTTP Basic/Digest等的内容,但无法将其全部变成"单件".这可能是最接近的情况 - 为移动应用程序创建API - 身份验证和授权

我想建立以API为中心的网站 - 服务.所以(在一开始)我会在中心有一个API,网站(PHP + MySQL)将通过网络接口通过cURL,AndroidiPhone连接.所以3个主要客户端 - 3个API密钥.任何其他开发人员也可以通过API接口开发,他们将获得自己的API密钥.API操作将根据userLevel状态被接受/拒绝,如果我是管理员,我可以删除任何内容等,所有其他操作只能操作他们的本地(帐户)数据.

首先,授权 - 我应该使用oAuth + xAuth还是我自己的一些实现(参见http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/RESTAuthentication.html?r=9197)?据我所知,亚马逊服务用户是== API用户(有API密钥).在我的服务上,我需要将标准用户/帐户(在网站上注册的用户)和开发者帐户(应该有他们的API密钥)分开.

所以我首先需要授权API密钥,然后验证用户自己.如果我使用亚马逊的方案检查开发人员的API密钥(授权他们的应用程序),我应该使用哪个用于身份验证?

我读过关于通过api.example.org/auth(通过HTTPS,HTTP Basic)发布我的用户名和密码后获取令牌,然后在每个后续请求中转发它.如果我在Android网站上同时登录,如何管理令牌?如果我只在第一次请求时使用SSL(当用户名和密码被传输时)而且只在每个其他地方使用HTTP,那么中间人攻击呢?这个示例中的问题不是密码保护REST服务吗?

php authentication api rest authorization

69
推荐指数
1
解决办法
5万
查看次数