web-dev-qa-db-ja.com

CORSをOpenID Connectで正しく使用するにはどうすればよいですか?

いくつかのブログ、Q&Aサイト、および質問の変形を尋ねるコメントにいくつかの質問があるようです:

CORSをOpenID Connectで正しく使用するにはどうすればよいですか?

これらの質問のコンテキストは通常​​、次の役割のいずれかに適用されます。

  • Facebook、Azure ADなどの発行者(これは仕様の「OP」または「OpenIDプロバイダー」です)
  • StackExchangeなどの依存パーティ、またはFB Connect Auth(仕様のWebサイト「クライアント」)

質問を検討しているときに、質問者または回答者が特定のプロファイルを参照している場合がありますが、ユースケースを関連する OpenID Connect Flow に明示的にマッピングしていません

  • リダイレクトまたはJavaScriptを使用したWebブラウザー認証
  • シングルページアプリケーション(SPA)
  • アクティブなクライアント(Flash、ブラウザプラグイン、ネイティブ電話アプリ)
  • デバイスの流れ(AppleTVのアクティブ化)

CORSが特定の役割または使用状況プロファイルにどのように、いつ適切かを説明する1つ またはより正確な回答 を探しています。 CORS w.r.tの正しい使用法の量OpenID Connectは有限であり、いくつかの正解がある可能性があると思います。

質問(言い換え)

  1. OPサーバーまたはクライアントサーバーでは、どのCORSポリシーを使用する必要がありますか?

  2. どのCORSポリシーを使用する必要がありますか。

    • 暗黙
    • 認証コード
    • ハイブリッド
    • クライアント資格情報
    • リソース所有者のパスワード
    • トークンを更新する
    • 延長許可
  3. CORSが適用されないのはいつですか、具体的にはセキュリティに対する脅威ですか?

5

CORSがセキュリティのリスクになるのはいつですか

CORSはデフォルトのルールをオーバーライドできるため、過度に寛容なCORSポリシーは、ポリシーがない場合よりも悪化する可能性があります。

CORSの許容度

CORSは、有効にしたいユースケースを許可しながら、可能な限り制限する必要があります。 CORSはCSRF攻撃を防ぐのに役立つため、この防御をあまり弱めすぎないように注意する必要があります。

CORSはどこに適用されますか

CORSはブラウザー内でのみ適用されるため、ネイティブアプリやデバイスログインなど、ブラウザー外のオプションには適用されません。

  • リダイレクトまたはJavaScriptを使用したWebブラウザー認証

    • CORSが適用されます
  • シングルページアプリケーション(SPA)

    • CORSが適用されます
  • アクティブなクライアント(Flash、ブラウザプラグイン、ネイティブ電話アプリ)

    • CORSは適用されません-ブラウザの内部ではありません
  • デバイスの流れ(AppleTVのアクティブ化)

    • CORSは適用されません-ブラウザの内部ではありません
3
jrtapsell

この答えは非常に短いですが、私の見解では、「アプリ」と認証プロバイダーの間の通信はHTTPリダイレクトを介して行われるため、CORSはここではまったく機能しません。つまり、クロスオリジンAJAX JS呼び出しが適切な実装で行われていません。

1
RibaldEddie