解決しようとしている問題は以下の通りです:
beta.example.comで動作するASP.NETCore 3.1 の Web アプリに Identity(現時点では Identity Server ではありません)が搭載されています。ユーザーは登録、プロフィール作成、Google や Facebook でのサインインなどが可能です。これは標準的なASP.NETの認証/認可であり、コードに実質的な変更はありません。- また、
forumbeta.example.comというサブドメインで Discourse フォーラムを運用しています。
ユーザーストアは dotnet Core アプリで管理したいと考えています。このアプリを Identity Provider として機能させます。ユーザーが Discourse にサインインしようとした際、Discourse は Web アプリからユーザー情報(名前、メールアドレス、その他の属性など)を要求します。ユーザーが Web アプリに存在し、かつ既にサインインしている場合、Discourse はそのユーザーを Discourse 側にサインインさせ、投稿を可能にします。ユーザーが存在しない場合、またはサインインしていない場合は、アプリのサインイン/登録ページにリダイレクトし、アカウント作成またはサインアップを行った後、Discourse へ戻す必要があります。
この件について多くの情報を読みましたが、dotnet アプリに Identity Server 4 をインストールして設定し、Identity Provider として機能させる必要があるようです。その後、以下のいずれかを行う必要があるとされています:
- Discourse の組み込み SSO 機能を使用する
または - Discourse に OAuth2 プラグインをインストールし、設定する
現在、やや行き詰まっており、経験豊富な方から次の手順についてアドバイスいただければ幸いです。Web 上の情報は一部が古くなっており、無駄な時間を費やしたくありません。