APIのセキュリティについて、経験不足から些細な概念を見落としている可能性があるため、さらに質問があります。
フロントエンドに統合するためにヘッドレスなDiscourse実装を使用しており、ユーザー認証のためにSSOを正常に有効化しました。
当初は、SSOを使用して「アクティブユーザー」として認証し、APIからアクティブユーザー固有のデータを取得するものだと理解していました。しかし、それは完全には正しくないことがわかりました。
返されるデータは、ヘッダーに渡される「api-username」に依存するようです。しかし、私は管理者APIキーを使用しているため、これは正しいユーザー名を「api-username」として渡すことで、任意のユーザーデータを取得できることを意味すると考えています。
したがって、私の質問は、APIには「アクティブユーザー」という概念がなく、external_idによってユーザー名を取得し、アクティブセッション全体でそれをapi-usernameとして使用するように調整する必要があるということでしょうか?
私の理解が正しければ、ハッカーがヘッダーのapi-usernameを簡単に変更して、任意のユーザーのチャットディスカッションを取得できるのではないでしょうか?
理解を深めるために、追加の情報があれば幸いです。ありがとうございます!
私が読んだ関連記事:
管理者APIキーは、王国への鍵です。

フロントエンドアプリのどこにも配置しないでください。もし配置した場合は、すぐに失効させることをお勧めします。
「いいね!」 3
michaeld
(Michael - Communiteq)
3
フロントエンドからそのAPIを使用するべきではありません。その場合、実際にはリスクがはるかに高くなります(ハッカーは何でもできるため)。
バックエンドから行うべきです。
それがオプションでない場合は、代わりにユーザーAPIキーを使用する必要があります。
「いいね!」 2
ヘッドレス実装として、これをフロントエンドから実行します。したがって、この場合、このトピックに関する議論を解読するために時間を費やす必要があるようです。
これらの議論と同様に、管理APIアクセスを使用してユーザーのAPIキーを自動生成することに興味がありますが、私のフローでは、ユーザーが新しいページにリダイレクトして私のアプリを「承認」することを望みません。管理APIキーを使用して承認を強制するか、生成する新しいユーザーAPIキーに追加の認証が不要になるように無効にできる設定はありますか?