使用OAuth2客户端凭据流保护用PHP编写的REST API

11 php api rest symfony oauth-2.0

我正在使用Symfony2在PHP中编写REST API.此API旨在供各个网站用于访问数据,这将由客户端库完成.

我需要保护API,但事实证明这有点令人困惑.我做了一些研究,据我所知,一个好方法似乎是将OAuth2与客户端凭证流一起使用(参见RFC草案).我不得不承认,我对这究竟是如何工作的细节仍然很模糊,但我一直在阅读它是如此简单.我想我的第一个问题是:这是走的路还是我朝错误的方向走了?我应该使用其他方法来验证客户端吗?请记住,我需要身份,身份验证和授权.

如果是,使用客户端凭据的OAuth2就是这样,那么我问:在PHP中实现这一点的最佳方法是什么?有人真的这样做过吗?到目前为止,我一直在尝试使用oauth2-php以及没有太多运气的捆绑.虽然我不太确定,但该捆绑似乎专注于三足认证.我想知道最好的行动方案是使用oauth2-php软件包手动吗?

我非常感谢有关这方面的任何信息.提前致谢!

Wil*_*ies 4

海达尔,

\n\n

我目前正在从事一个类似的项目,这是我迄今为止发现的。

\n\n

Oauth 正式授权网站使用网络上的其他资源,Facebook 发现授权和身份验证的完全分离对其开发者群体来说令人困惑,并开始将 Oauth 用于两者。由于它是开发人员一直关注的主要参与者。

\n\n

尽管我不太确定您声明中身份部分的含义,但您需要“身份、身份验证和授权”。

\n\n

您可以将 Oauth 用于其他两个,这是从所有大型互联网公司都这样做的事实中扣除的(在这方面我能为您做的最好的事情,Oauth 文档说它仅用于授权)。

\n\n

Google 提供了一个维护得很好的客户端库:http://code.google.com/p/google-api-php-client/wiki/OAuth2

\n\n

此外,对于服务器端库,我会转向您提到的 oauth2-php,网址为https://github.com/quizlet/oauth2-php但请参阅这篇文章了解更多详细信息:是否有 OAuth 2 服务器端 PHP 或Java 实现?

\n\n

关于三足身份验证的部分,请参阅此处的答案(它确实很广泛,但解释得很好)OAuth 2.0:优点和用例 \xe2\x80\x94 为什么?

\n\n

请记住,尽管我仍在努力实际实施这一点。

\n

  • 嗨威廉,感谢您的回复。我们最终决定不使用 OAuth2,这对我们来说不值得。现在,在看到标准的制定过程中发生的情况后,我认为我们没有遵循它是件好事。我们现在将使用简单的密钥+秘密身份验证来获取 API,一旦可以,我们可能会实现 OAuth1 或比密钥+秘密更复杂的东西,因为它让我们面临一些安全问题。您最终使用 OAuth2 的进展如何? (2认同)
  • 你好,海达尔,谢谢你的提问。好吧,这里的情况也不太好;-) 我通过这个 OAuth2-php 在 PHP 中实现了 OAuth 2,但我们没有时间在 REST 框架中实际实现它。然而,毫无疑问 OAuth2 的必要性(我真的不会选择 OAuth 1a,2 将成为标准,它已经被广泛接受和实施。)如果你实施某些东西,最好好好实施;-) 对?祝你好运! (2认同)