Oauth2-basic プラグインと pkce

皆様、こんにちは。

oauth2-basic プラグインの初心者で、ドキュメントとソースコードを読んでも、私の質問に対する答えが見つかりません。

  • oauth2-basic プラグインは PKCE をサポートしていますか?
  • サポートしている場合、それを有効化するにはどうすればよいですか?
  • サポートしていない場合、oauth2-basic プラグインのコードをどのように修正すれば PKCE を使用できるようになりますか?

omniauth の GitHub ページの README によると、omniauth ストラテジーで pkce オプションを true に設定できるはずです。しかし、oauth2-basic プラグインのコードでこの変更を試みても、authorize_url に対して code challenge が送信されていません。何かご提案はありますか?

あらかじめありがとうございます。

PKCE のサポートを求めているコミュニティの支援をしているため、これを再投稿します。

尋ねられるまでこれについては何も見ていませんでしたが、PKCE のドキュメント を確認したところ、主な推進要因はネイティブ アプリと SPA のようです。

ネイティブ アプリ

  • クライアント シークレットを安全に保存できません。アプリを逆コンパイルすると、アプリにバインドされ、すべてのユーザーとデバイスで同じになるクライアント シークレットが明らかになります。
  • リダイレクトをキャプチャするためにカスタム URL スキーム (例: MyApp://) を使用する場合があります。これにより、悪意のあるアプリケーションが承認サーバーから承認コードを受信できる可能性があります。

シングルページ アプリ

  • クライアント シークレットは、ブラウザ全体でソース全体が利用できるため、安全に保存できません。

これらはどちらもこの状況には当てはまりません。シークレットを保持しているのは Discourse サーバーです。

Animated GIF