node.js(Express付き)にAPIを構築しました。これは、現在OAuth 2.0サーバー側(明示的)認証をサポートしています。クライアントがjavascriptライブラリ(クライアント側の暗黙的な認証)を介してアプリに接続できるようにしたいと思います。
まず、サーバーでCORSを有効にする必要があることを理解しています。
暗黙的な認証の問題についての私の現在の理解は、JavaScriptクライアントにサードパーティアプリケーションのシークレットをリクエストに含めるように依頼できないという事実です。これには、シークレットをjavascriptにコーディングする必要があり、セキュリティリスクが発生するためです(秘密鍵)。したがって、javascriptクライアントからのリクエストは、アプリケーショントークンのみで署名されます(シークレットはありません)。API側のセキュリティを保証するには、javacsriptを提供するドメインを、代わりに動作していると主張するサードパーティアプリの登録済みドメインと照合する必要があります。
言い換えると、API側では、プロセスは次のように機能するように聞こえます。
- 着信リクエストにサードパーティアプリケーションの「秘密」がない場合は、リクエストヘッダーを調べます
- このサードパーティアプリに対して登録されているドメイン名に代わってリクエストが行われていることをヘッダーが確認した場合は、アプリケーションが検証済みであると見なします(提供されている場合は、access_tokenの認証に進みます)。
私の混乱はこれです:
ヘッダーのなりすましを要求することはできませんか?リクエストを行っているJavaScriptクライアントが、それが主張しているドメインに本当に存在していることをどのように確認できますか?