What are your experiences with wp-discourse plugin and DiscourseConnect?

これは古い質問ですが、2015 年に投稿されてからいくつかの変更点があります。注目すべき変更点の一つは、現在「Discourse SSO」ではなく「DiscourseConnect」という用語を使用していることです。これは、SSO という用語が SAML、OAuth2、Auth0 など、いくつかの異なる認証メカニズムを指す可能性があるためです。DiscourseConnect は、Discourse による SSO の実装です。

DiscourseConnect が有効になっている場合、Discourse サイト上のすべての認証は、discourse connect url サイト設定で指定したサイトで行われます。つまり、ユーザーは Discourse 上で登録するのではなく、外部サイトで登録してアカウントを作成します。ユーザーが DiscourseConnect を介してログインすると、アカウントの詳細が Discourse に渡されます。ユーザーが初めて Discourse にログインすると、SSO ペイロードで提供されたデータに基づいてアカウントの詳細が設定されます。一部の Discourse サイト設定の値に応じて、アカウントの詳細はユーザーが Discourse にログインするたびに同期され続けるか、またはユーザーが Discourse 上で独自の値を設定できるようになります。これに関連する設定は以下の通りです。

  • auth overrides email
  • auth overrides username
  • auth overrides name
  • discourse connect overrides bio
  • discourse connect overrides avatar
  • discourse connect overrides profile background
  • discourse connect overrides location
  • discourse connect overrides website
  • discourse connect overrides card background
  • discourse connect overrides groups

なお、デフォルトでは WP Discourse プラグインは以下のフィールドのみをペイロードに送信します。

  • username
  • email
  • name
  • bio
  • avatar_url

追加のパラメータは、WP Discoursewpdc_sso_params フィルターフックにフックすることでペイロードに追加できます。

DiscourseConnect を有効にすることで失われる可能性のある最大の機能は、有効化されるとそれがサイトの唯一の認証方法になることです。つまり、DiscourseConnect と併せてソーシャルログインを有効にすることはできません。ただし、認証プロバイダーサイト側でソーシャルログインを有効にすることは可能です。例えば、ユーザーがさまざまなソーシャルログインプロバイダーを通じてウェブサイトにログインできるようにし、その後 DiscourseConnect を介して Discourse にログインさせることができます。同様のアプローチを OAuth2 や SAML に対しても使用できます。ユーザーはこれらの認証方法でウェブサイトにログインし、その後 DiscourseConnect を介して Discourse にログインするためにリダイレクトされます。

もう一つ失われる機能として、DiscourseConnect と併せて invite only サイト設定を有効にできない点が挙げられます。

外部アプリケーションから Discourse へユーザーデータを簡単に同期できることは大きな利点です。Discourse のグループメンバーシップは、SSO ペイロードに渡される add_groups および remove_groups フィールドを使用して簡単に設定できます。WP Discourse プラグインはデフォルトではこれらのフィールドのいずれも送信しませんが、WP Discoursewpdc_sso_params フィルターフックにフックすることでペイロードに追加できます。

グループメンバーシップやペイロードで設定可能な他のフィールドは、バックグラウンドリクエストでも同期できます。詳細については、Sync DiscourseConnect user data with the sync_sso route をご覧ください。WP Discourse プラグインを使用したグループの同期については、Managing Discourse group membership with WP Discourse SSO をご覧ください。

もう一つの可能性のある利点として、すでに外部サイトに大規模なユーザーベースが存在する場合、DiscourseConnect を有効にすることで、これらのユーザーは別途 Discourse アカウントを作成することなく Discourse にログインできるようになります。

DiscourseConnect では、SSO プロバイダーサイトから Discourse に渡される external_id に基づいてアカウントがリンクされます。WP Discourse プラグインは、external_id としてユーザーの WordPress ID を使用します。

はい、デフォルトでは WP Discourse による DiscourseConnect の実装において、これらすべてのフィールドが設定されます。前述の通り、ユーザーが Discourse にログインするたびにこれらが同期され続けるかどうかは、さまざまな Discourse サイト設定の値に依存します。

「いいね!」 7