0

メインWebサイト(すべてのデータを含む)と、メインWebサイトからデータを取得する複数のクライアントWebサイトがあります。各クライアントWebサイトは、メインWebサイトのさまざまなデータセットにアクセスできます。このためにPHPベースのWebAPIを作成したいと思います。これは私の最初のAPIであるため、これを行うための最良かつ最も安全な方法がわかりません。

いくつかグーグルした後、私はOAuthがAPIの最も一般的な認証方法であることに気づきました。ただし、私の場合は、クライアントのWebサイトを一度構成してから、通信を自動化する必要があります。つまり、ユーザーの干渉なしにバックグラウンドで通信を行う必要があります。このシナリオにはOAuthが必要ですか?

または、ここで実装できる他の方法はありますか?

4

3 に答える 3

1

oauth は、ニーズに合わせて実装するのが複雑です。

残りを使用している場合は、ヘッダーで basic-auth を使用し、通信が暗号化されるように SSL を使用することをお勧めします。

URLパターン/api/を持つリクエストについて、basic-authが正しく、SSLを使用していることを確認する小さなSecurityFilterを作成できます...

于 2012-10-19T18:25:10.507 に答える
1

それは、API をどのように公開しているかに大きく依存します。

REST を使用している場合は、HTTPS 経由の HTTP 基本認証で十分です。提供されたアプローチで十分な場合、多くの人が独自のソリューションを実装しようとしているのを目にします。

SOAP を使用している場合、使用できる SOAP ベースのアプローチがあります: WS-Security (これは、SAML アサーションから OAuth トークンまで、あらゆるものを使用する単なる標準です)。

基本認証資格情報を HTTPS 経由で渡すのが「オープン」すぎる場合、資格情報がクライアント サーバーの構成にどこかに保存されている場合、OAuth2 がおそらく最適なソリューションです。サーバー側で OAuth を実行すると、ユーザーの操作は必要ありません。トークンをサーバー構成に保存するだけで、残りは OAuth ライブラリに任せることができます。PHP には、このPHP OAuth Library用のライブラリがあります。PHP 用の OAuth2 ライブラリは多数あります。グーグルで検索してください。

于 2012-10-19T18:27:43.683 に答える
0

さらにグーグルと調査を行った後、私は自分の質問に対する答えを見つけました。

私が説明したシナリオは、2本足のOAuthの例です(2本足と3本足のOAuthに関する多くの記事を見つけることができます)

また、OAuthの実装は難しくありません。実際、APIとAuthシステムに関する十分な知識を持つ開発者にとっては非常に簡単です。

これは、サンプルコードhttp://code.google.com/p/oauth-php/を使用した非常に優れたphpOAuthライブラリのリンクです。

于 2012-10-25T16:57:20.307 に答える