我们目前有一个基于SOAP的Web服务,我们的内部应用程序使用它来验证用户身份。基本上,他们使用用户名和密码发送SOAP请求。 Web服务针对我们的数据存储验证其凭据,并在验证成功时返回用户信息。使用BASIC身份验证和SSL保护Web服务。
我们需要对此Web服务进行修改,我正在考虑将其重新编写为REST服务。我过去创建的REST服务非常简单,不需要安全性。我从未创建过使用敏感信息的REST服务,因此我有几个问题/疑虑:
首先,是否有安全地将敏感查询参数(用户凭据)发送到REST服务的最佳做法?我仍然可以使用BASIC身份验证和SSL。
其次,如果我使用POST向REST服务发送查询,它仍然被认为是RESTful,还是REST查询需要GET?
答案 0 :(得分:3)
您也可以将SSL和基本身份验证与REST Web服务一起使用。
HTTP GET通常用于数据检索(查询),但您也可以使用HTTP POST。如果您可以使用任何类型的HTTP缓存,GET特别有用。如果您需要传输大量数据来定义查询,或者您的Web服务操作需要一些复杂的数据格式而不是简单的参数,那么POST很有用。
答案 1 :(得分:1)
除了通过REST进行身份验证之外,您还可以考虑在连接中使用网络身份验证协议与Web服务。像Kerberos和OAuth这样的技术是为这些用例而设计的。
回答你的问题:
REST鼓励您利用HTTP和相关协议,因此使用SSL和BASIC身份验证非常合适。
REST鼓励不仅使用GET和POST,还使用其他HTTP“动词”,如PUT和DELETE。仅对没有副作用的幂等操作使用GET。
答案 2 :(得分:0)
就安全性而言,从SOAP到REST正在向后退一步。
就最佳做法而言: