Webサーバーバックエンドを機密クライアントとして使用して、アクセストークンを保護し、承認サーバーから返されたトークンを最新表示し、JavaScriptフロントエンドに渡すことができないことを理解します。
いいえ、それはOAuth2の流れと目標の誤解です。ここで
はのOAuth2主な目標である:(あなたのアプリケーション(JavaScriptのプログラムは、ブラウザ内で実行され、たとえば缶、ウェブサーバ、両方、など)
は、ユーザーの資格情報を知っている必要はありませ MUST最もユーザの代わりにサービスにアクセスするためのログイン/パスワードのペアの時間)を指定します。ここで
はのOAuth2がこの目標を達成するために使用されなければならない方法です。
ニーズに応じて、それはブラウザ内で実行されているJavaScriptベースのアプリケーションを持っている(すなわちないノード.jsアプリケーション)では、OAuth2 暗黙のフローを使用する必要がありますが、認証コードフローは使用しないでください。もちろん、アプリケーションがブラウザで実行されているため、サービスプロバイダが提供するリソースにアクセスするための資格情報を保持することはできません。ユーザーは、アプリケーション上の新しいセッションごとにサービスプロバイダーに認証する必要があります。
アプリケーションは、ユーザーがログインしていないとき、またはアプリケーションが資格情報を保持することが可能であるときに、サービスプロバイダにアクセスする必要があります(アプリケーションがそのユーザーを識別するために、独自の資格制度を持っているので)、あなたのアプリケーションはしていませんブラウザで実行されているJavaScriptプログラムのみに依存します。これは、Webサーバーのみ、またはこのサーバーと通信するWebサーバーとJavaScriptプログラムの両方に依存している可能性があります。その場合は、承認コードフローを使用する必要があります。だから、
、結論として、あなたはあなたが認可コード・フローを使用していたと思ったので、あなたのアプリケーションにWebサーバーを追加することにしました。しかし、あなたの場合は、おそらくこのコードフローを使用する必要はないため、アプリケーションに適切なコードフロー、暗黙のコードフローを選択する必要があります。これで、アプリケーションを実行するWebサーバーを追加する必要はありません。
どのようにトークンを保持するWebサーバーがセキュリティを強化していますか?
これは特別なセキュリティを提供しません。トークンを保持するWebサーバーを持つことは、ユーザーがアプリケーションにログオンしていないときに、アプリケーションをバックグラウンドでユーザーに代わってアクセスさせる単純な方法です。
認証コードフローを使用する必要がありますか、それともそれを選択しましたか? –
私はリフレッシュトークンをサポートする必要があり、仕様の[セクション4.2](https://tools.ietf.org/html/rfc6749#section-4.2)は、暗黙のグラントタイプがそれらをサポートしていないと言っています。 –