11

Symfony2 を使用して PHP で REST API を作成しています。この API は、個々の Web サイトがデータにアクセスするために使用することを意図しており、これはクライアント側のライブラリによって行われます。

ただし、API を保護する必要がありますが、これは少し混乱を招きます。私はいくつかの調査を行いましたが、私が知る限り、クライアント資格情報フローで OAuth2 を使用するのが良い方法のようです (RFC ドラフトを参照)。認めざるを得ないのは、これがどのように機能するかの詳細についてはまだあいまいですが、とてもシンプルであることを読み続けています. 私の最初の質問は、これが進むべき道なのか、それとも間違った方向に進んだのかということだと思います クライアントを認証するために他の方法を使用する必要がありますか? ID、認証、承認が必要であることを覚えておいてください。

はいの場合、クライアント資格情報を使用する OAuth2 がその方法です。次に、PHP でこれを実現する最善の方法は何ですか? 誰かが実際にこれをやったことがありますか?これまでのところ、バンドルと一緒にoauth2-phpを使用しようとしてきましたが、あまり運がありませんでした。よくわかりませんが、そのバンドルは 3-legged 認証に焦点を当てているようです。おそらく oauth2-php パッケージを使用して手動で行うのが最善の方法ではないかと思っていましたか?

これに関する情報をいただければ幸いです。前もって感謝します!

4

1 に答える 1

4

ハイダー、

私は現在、同様のプロジェクトに取り組んでおり、これがこれまでに見つけたものです。

Oauth は公式には Web 上の他のリソースを使用して Web サイトを承認するためのものです。Facebook は、承認と認証の分離全体が開発者ベースを混乱させることに気づき、両方に Oauth を使用し始めました。それ以来、主要なプレーヤーの開発者がタグを付けてきました。

ステートメントのアイデンティティ部分で何を意味するのかよくわかりませんが、「アイデンティティ、認証、承認」が必要です。

他の 2 つは Oauth を使用できますが、すべての大手インターネット企業がそうしているという事実から差し引かれます (この面で私ができる最善のことは、Oauth のドキュメントによると、それは承認のためだけであるということです)。

Google は、非常によく維持されているクライアント ライブラリを提供しています: http://code.google.com/p/google-api-php-client/wiki/OAuth2

さらに、サーバー側ライブラリについては、https://github.com/quizlet/oauth2-phpで参照されているように、oauth2-php を参照しますが、詳細については、この投稿を参照してください: OAuth 2 サーバー側 PHP またはJavaの実装?

3-legged authentication の部分については、こちらの回答を参照してください (非常に広範囲ですが、よく説明されています) OAuth 2.0: 利点と使用例 - なぜ?

ただし、これを実際に実装するのにまだ苦労していることを覚えておいてください。

于 2012-07-09T20:31:11.543 に答える