如何设计PHP REST Web服务的身份验证?

时间:2012-09-26 12:07:07

标签: php json web-services rest authentication

  

可能重复:
  How secure is sending sensitive data over https?
  JSON data to web service- how do define expected JSON data

我正在构建一个接受JSON作为其有效负载的REST Web服务。 现在,我的网络服务非常简单。它只接受来自客户端系统的数据并在我们的系统中创建订单(Web服务基本上是现有功能的包装器)。

现在,我通过应用程序中的用户名和密码对用户进行身份验证。我只是要求他们在他们发送的JSON数据中提供他们的用户名/密码吗?这样安全吗?

该服务通过HTTPS运行。

1 个答案:

答案 0 :(得分:0)

正如我在上面的评论中所写,你不清楚你想知道什么。也许是因为有很多“它取决于”的潜力。

让我们看看你能做些什么:

  1. 您可以将身份验证放在传输层,此处为HTTP。这样可以让您很早就进行身份验证,例如在(网站)服务器级别。
  2. 您可以使用json有效内容传递凭据,然后在应用程序中进行身份验证。这可以与1结合使用。
  3. 您可以创建经过身份验证的会话,并传递会话密钥。然后,API请求需要有一个会话,否则不会被接受。这可以与2.和3结合使用。
  4. 只要传输层对您来说足够安全(此处为TLS / SSL),请随心所欲。根据您选择的模式,您还需要做更多的工作。

    通常在用户凭证旁边还有一个所谓的API密钥,Web服务使用它来将每个API请求映射到某个实体,这也可以在身份验证中发挥一些作用。但是,API-Key就像一个用户名和密码,因此它并不灵活。