RESTful APIを認証するためのさまざまなソリューションに関するさまざまな記事がありますが、現在のシナリオではいくつか質問があります。クライアント側のREST API認証
ソフトウェアサービス(私たちはB2B企業)のクライアントがプログラムでリソースにアクセスできるようにするREST APIを構築しました。 APIが正しく機能するようになったので、可能な限り標準化された方法でAPIを保護したいと思います。 APIの呼び出し元に基づいて特定のリソースへのアクセスを許可する必要があります。つまり、APIのすべてのユーザーがすべてのリソースにアクセスできるわけではありません。
私は次のフォーマットで利用できるのURLています
https://mydomain/api/students
https://mydomain/api/students/s123
https://mydomain/api/students/s123/classes
https://mydomain/api/students/s123/classes/c456
これまでのところ、私はこれらの可能な解決策を作ってみた:
は、彼らが使用できることを各クライアントに一意のキーを提供します各REST呼び出しの終了時にGETパラメータとして渡される暗号化されたトークンを最終的に生成して、すべての単一の要求を(再)認証します。このアプローチは
あまりにも高価であるがhere見られるようにHTTP認証ヘッダの値を提供します。これは#1とほとんど同じですか? (URLをブラウザに貼り付けることはできないことを除いて)人々はこれらのヘッダーをもう使用していますか?
OAuth 2を使用します(これはまだわかりません)。 OAuth 2は実際にログインしたユーザとしてクライアントを認証しますか?ステートレスなREST APIの精神に逆らっていませんか?私はOAuthが私のための適切な解決策であることを望んでいましたが(それは公的な基準なので)、少し読んだら、私はそれほど確信していません。 REST APIコールが過剰であるか、不適切なのですか?
私の目標は、APIを消費したいクライアントごとに変更する必要はありませんが、むしろ私は、私たちのクライアントのすべてが利用できるように、標準的なドキュメントを提供できるというAPIを提供することです。
私が不明な点がある場合は、さらに詳しい情報を投稿していただきます。