GitHub OAuth を使用して SSO を設定したいと考えています。ユーザーが GitHub 経由でサイトにログインすると、Discourse にも自動的にログインされるようにしたいです。Discourse のコメントはサイトに埋め込まれています。
このように設定するにはどうすればよいでしょうか?
GitHub OAuth を使用して SSO を設定したいと考えています。ユーザーが GitHub 経由でサイトにログインすると、Discourse にも自動的にログインされるようにしたいです。Discourse のコメントはサイトに埋め込まれています。
このように設定するにはどうすればよいでしょうか?
ご自身のサイトへの OAuth2 接続には、このプラグインを使用できます。
「GitHub でログイン」機能は Discourse に標準搭載されています。設定手順はこちらで確認できます:
まだ混乱しています。
明確でなかった場合のために申し上げますと、私は以下を持っています:
GitHub OAuth を備えたウェブサイト。
GitHub OAuth を備えた Discourse。
どちらも他のログイン方法を持っていません。
ユーザーが私のウェブサイトにログインすると、Discourse にも自動的にログインされる必要があります。
私が欠けているのは、それらの間のリンクです。私のウェブサイトで GitHub OAuth 経由で認証されたときに、どのようにして彼らを Discourse にログインさせるのでしょうか?
ユーザーがあなたのウェブサイトにログインすると、会話が発生するのは GitHub とあなたのウェブサイトの間だけです。
つまり、
あなたのウェブサイトは GitHub に呼び出し、ユーザーデータベースにそのユーザーが存在するかどうかを問い合わせます。
GitHub は「はい(またはいいえ)」と応答し、あなたのサイトが要求したユーザーデータまたは認証トークンを返します。
これで、ユーザーはあなたのサイトにログインしたことになります。
この仕組みにおいて、Discourse に関するやり取りは存在しません。ここで必要なのは、指定されたユーザーがログインしたことを Discourse に伝え、Discourse にも同時にログインさせる方法です。
必要なのは、あなたのウェブサイトのログイン処理と並行して Discourse のログイン処理をキューイングし、ユーザーのログイン/ログアウトを Discourse に認識させる仕組みです。
Auth0 はこれを最初から非常にうまく処理します。
もう一つの方法は、Discourse を SSO サーバーとして使用することです。
返信ありがとうございます!
私が使っている認証プラグインは実際には OAuth を経由して JWT を発行していることに気づきました。discourse-jwt の仕組みなら、私にも使えると思います。