2016-03-31 10 views

答えて

1

認証コードフローは、生成されたトークンをユーザーから隠し、適切なクライアントアプリケーションだけがアクセスできるようにします。それは三方通信です:

  1. ユーザはopenidプロバイダに認証されます。
  2. openidプロバイダは認証コードをユーザのブラウザに返します。
  3. ユーザーのブラウザは、認証コードをクライアントアプリケーションに渡します。
  4. クライアントアプリケーションは、認証コードクライアントシークレットで、クライアントアプリケーションであることを確認するopenidプロバイダを呼び出します。
  5. openidプロバイダは実際のアクセストークンを返します。

このフローは、アクセストークンがクライアントブラウザに公開されないため、サーバーベースのアプリケーションの方が安全です。サーバーアプリケーションは、クライアントシークレットを使用して自身を認証し、誰もそれを使用することができません。

クライアント全体がブラウザのJavascriptで実行されるとき、暗黙のフローが使用されます。 javascriptクライアントは「クライアントの秘密」を保持できないため、そのための使用はなく、javascriptクライアントはブラウザでトークンを利用できるようにする必要があります。単純な解決策は、openidプロバイダにアクセストークンをブラウザに直接返すことです。

関連する問題