1

どのような場合に OpenID Connect Implicit フローを使用しますか: http://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth

対標準フロー? http://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth

4

1 に答える 1

1

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

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

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

クライアント全体がブラウザーで Javascript で実行される場合、暗黙的なフローが使用されます。JavaScript クライアントは「クライアント シークレット」を保持できないため、それは不要であり、JavaScript クライアントはブラウザで使用可能なトークンを取得する必要があります。簡単な解決策は、openid プロバイダーがアクセス トークンをブラウザーに直接返すようにすることです。

于 2016-04-01T05:37:35.073 に答える