皆様、こんにちは。
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 サーバーです。
