如何使用API​​安全地与两个Web应用程序进行通信?

时间:2012-10-19 18:13:05

标签: php api oauth

我有一个主网站(包含所有数据)和多个客户网站,从主网站获取数据。每个客户网站都可以访问主网站上的不同数据集。我想为此创建一个基于PHP的Web API。这是我的第一个API,所以我不确定什么是最好和最安全的方法。

经过一些谷歌搜索后,我发现OAuth是API最常用的身份验证方法。但是在我的情况下,我希望客户端网站配置一次,然后通信应该是自动的,即通信应该在后台进行而不受任何用户干扰。此方案是否需要OAuth?

或者我可以在这里实施其他任何方法吗?

3 个答案:

答案 0 :(得分:1)

oauth是根据您的需求实施复杂的方法。

如果您正在使用休息,我建议在标头中使用基本身份验证并使用SSL,以便加密您的通信。

您可以创建一个小型SecurityFilter,用于检查网址格式为 / api / 的任何请求是否认为basic-auth是正确的,并且使用SSL ...

答案 1 :(得分:1)

这实际上取决于您如何公开您的API。

如果您使用的是REST,则基于HTTPS的HTTP Basic Auth就足够了。我发现当提供的方法足够时,很多人都会尝试实施自己的解决方案。

如果您正在使用SOAP,则可以使用基于SOAP的方法:WS-Security(这只是使用SAML断言到OAuth令牌的标准)。

如果通过HTTPS传递基本身份验证凭据对您来说太“开放”,因为凭据保存在客户端服务器上的配置中,OAuth2可能是最佳解决方案。在服务器端执行OAuth不需要任何用户交互。您只需将令牌存储在服务器配置中,然后让OAuth库负责其余部分。 PHP有一个用于此PHP OAuth Library的库。 PHP有很多OAuth2库。只是Google吧。

答案 2 :(得分:0)

经过一些谷歌搜索和研究,我找到了回答我的问题:

我解释的场景是一个双腿oauth的例子(可以找到许多关于双腿和三腿oauth的文章)

此外,OAuth并不难实现,对于具有API和Auth系统知识的开发人员来说非常容易。

这是一个非常好的php OAuth库链接,带有示例代码http://code.google.com/p/oauth-php/