1

さまざまなレベルの認証でAPIにアクセスする方法を理解しようとしてRESTfulAPIを構築しています。

これらは私のシナリオです:

a)Webアプリケーション「A」がすべてのアカウントと請求を処理します。独自のAPIを呼び出すことができるはずです。

b)Webアプリケーション「B」(Webアプリケーション「A」によって信頼され、その逆も同様)は、Webアプリケーション「A」に対してAPI呼び出しを行って、新しいアカウントを確認および作成できる必要があります。「A」はすべてのアカウントを管理および保存します。

c)Webアプリケーション「B」には独自のAPIがあり、独自のAPIを呼び出すこともできる必要があります。「B」は、すべてのユーザー(「A」のアカウントに関連付けられている)を管理および保存します。

d)サードパーティのアプリケーション「C」は、「B」のユーザーに代わってアプリケーション「B」に対してAPI呼び出しを行うことができる必要があります。

だから...ここに私の質問があります:

  1. アプリケーションから独自のAPIへのAPI呼び出しをどのように保護および認証しますか?独自のAPIをどのように呼び出しますか?外部アプリケーションと同じように?

  2. 外部アプリケーションと同じ方法でAPIメソッドを呼び出すとパフォーマンスが低下しませんか(たとえば、CURL GET https://api.example.com/accountsを実行します)?または、内部APIを別の方法で呼び出す必要がありますか?(この質問がばかげている場合は申し訳ありません)

  3. 「B」が「A」を信頼している場合、およびその逆の場合:認証または承認が必要ですか?ユーザーが関与していないため、アカウントとビジネスロジックのみが関係します。アプリケーション「B」は、どのアカウントに対して操作を実行するかを「A」に指示する必要があります。ただし、基本的には、どのアカウントでもこれらすべてのタスクを実行できます。「B」のclient_keyとclient_secretをリクエストパラメータと一緒にHTTPS経由で送信しても大丈夫でしょうか。

  4. シナリオd)には本当にoAuthだけが必要だと思いますよね?

4

1 に答える 1

0
  1. アプリケーションから独自の API への API 呼び出しをどのように保護し、認証しますか? 独自の API をどのように呼び出しますか? 外部アプリケーションと同じように?

API へのアクセスに curl は使用しません。codeigniter を使用すると、API をライブラリとして作成し、各ライブラリ メソッドを呼び出すコントローラーを作成できます。これにより、コントローラーを介して Web アクセス可能な API を生成し、ライブラリをロードしてメソッドに直接アクセスすることができます。

  1. 外部アプリケーションと同じ方法で API メソッドを呼び出すのはパフォーマンスが悪いのではないでしょうか (CURL GET https://api.example.com/accountsを実行するとします)。それとも、内部 API を別の方法で呼び出す必要がありますか? (この質問がばかげている場合は申し訳ありません)

はい、#1 で述べたように。

  1. "B" が "A" を信頼する場合、またはその逆の場合: 認証や承認は必要ですか? 関係するユーザーがいないため、アカウントとビジネス ロジックだけです。アプリケーション「B」は、「A」にどのアカウントに対して操作を行うべきかを伝える必要があるだけです。ただし、基本的には、これらすべてのタスクをどのアカウントでも実行できます。「B」の client_key と client_secret をリクエスト パラメータとともに HTTPS 経由で送信するだけでよろしいでしょうか?

外部から http 経由でアクセスしている場合は、API キーまたは何らかのトークンを使用することをお勧めします。#1で言及したコントローラー/ライブラリールートを実行している場合。それからいいえ。

  1. シナリオ d) では oAuth だけが必要だと思いますよね?

ユーザーにキーを手動で提供する oAuth または API キー システム。

于 2012-07-26T17:00:34.787 に答える