Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security HTTPS上RESTFul身份验证的解决方案_Security_Restful Authentication - Fatal编程技术网

Security HTTPS上RESTFul身份验证的解决方案

Security HTTPS上RESTFul身份验证的解决方案,security,restful-authentication,Security,Restful Authentication,therez在web上关于身份验证的很多讨论都是关于REST体系结构的,因此我认为现在是我们将解决方案放在一个地方的时候了。一个听起来不错的解决方案: (外面的安全专家,plz评论) 用户使用其用户名和密码登录 在服务器上,验证用户名和密码 如果凭证有效,我们将通过将时间戳与用户id混合来获得唯一的id。我们使用一个表来映射uniqueId->userid,并为刚才生成的唯一id和userid创建一个条目 此外,我们还设置了一个HTTP头say id,其中包含唯一的id和用户id,并使用字符串连

therez在web上关于身份验证的很多讨论都是关于REST体系结构的,因此我认为现在是我们将解决方案放在一个地方的时候了。一个听起来不错的解决方案:

(外面的安全专家,plz评论)

  • 用户使用其用户名和密码登录
  • 在服务器上,验证用户名和密码
  • 如果凭证有效,我们将通过将时间戳与用户id混合来获得唯一的id。我们使用一个表来映射uniqueId->userid,并为刚才生成的唯一id和userid创建一个条目

  • 此外,我们还设置了一个HTTP头say id,其中包含唯一的id和用户id,并使用字符串连接,如下所示。

  • 在每次请求时,客户必须提供此信息

  • 如果客户的请求要求我们确定客户是谁,以便我们可以检查他的权限,那么我们将执行以下操作:

  • 获取http头#

    如果不包含无效用户

    如果存在映射uniqueId->userid,则包含签入数据库

    如果是,我们已识别用户,否则为无效用户


    整个方案都在HTTPS上

    如果您使用HTTPS,我认为您不需要如此复杂的解决方案。您甚至可以要求客户端在每次请求时传输用户名和密码。只要客户没有受到威胁,就没有问题。如果它被破坏了,整个解决方案无论如何都会崩溃


    一般来说,我认为大多数开发人员都对通过HTTP而不是HTTPS的解决方案感兴趣。但是,已经有成熟的解决方案,如OpenID或OAuth.< /P>我会考虑使用存在的东西,而不是发明新的东西。