さまざまなレベルの認証で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呼び出しを行うことができる必要があります。
だから...ここに私の質問があります:
アプリケーションから独自のAPIへのAPI呼び出しをどのように保護および認証しますか?独自のAPIをどのように呼び出しますか?外部アプリケーションと同じように?
外部アプリケーションと同じ方法でAPIメソッドを呼び出すとパフォーマンスが低下しませんか(たとえば、CURL GET https://api.example.com/accountsを実行します)?または、内部APIを別の方法で呼び出す必要がありますか?(この質問がばかげている場合は申し訳ありません)
「B」が「A」を信頼している場合、およびその逆の場合:認証または承認が必要ですか?ユーザーが関与していないため、アカウントとビジネスロジックのみが関係します。アプリケーション「B」は、どのアカウントに対して操作を実行するかを「A」に指示する必要があります。ただし、基本的には、どのアカウントでもこれらすべてのタスクを実行できます。「B」のclient_keyとclient_secretをリクエストパラメータと一緒にHTTPS経由で送信しても大丈夫でしょうか。
シナリオd)には本当にoAuthだけが必要だと思いますよね?