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

Ceci est une ancienne question, mais plusieurs changements ont eu lieu depuis sa formulation en 2015. Une modification notable est que nous utilisons désormais le terme DiscourseConnect au lieu de Discourse SSO. En effet, le terme SSO peut désigner plusieurs mécanismes d’authentification différents (SAML, OAuth2, Auth0…). DiscourseConnect est l’implémentation de SSO par Discourse.

Lorsque DiscourseConnect est activé, toute l’authentification sur le site Discourse se fait sur le site que vous avez défini via le paramètre de site discourse connect url. Cela signifie que les utilisateurs créeront leurs comptes en s’inscrivant sur votre site externe plutôt que sur Discourse. Les détails du compte seront transmis à Discourse lorsque les utilisateurs se connecteront via DiscourseConnect. Lors de la première connexion d’un utilisateur à Discourse, ses informations de compte seront définies à partir des données fournies dans la charge utile SSO. Selon les valeurs de certains paramètres de site Discourse, les détails du compte continueront d’être synchronisés à chaque connexion de l’utilisateur à Discourse, ou les utilisateurs pourront définir des valeurs distinctes pour leur compte sur Discourse. Les paramètres pertinents à cet égard sont :

  • 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

Notez que par défaut, le plugin WP Discourse n’envoie que les champs suivants dans la charge utile :

  • username
  • email
  • name
  • bio
  • avatar_url

Des paramètres supplémentaires peuvent être ajoutés à la charge utile en utilisant le hook de filtre WP Discourse wpdc_sso_params.

La fonctionnalité la plus importante perdue en activant DiscourseConnect est qu’il devient alors la seule méthode d’authentification pour le site. Cela signifie que les connexions sociales ne peuvent pas être activées sur Discourse en même temps que DiscourseConnect. Vous pouvez cependant activer les connexions sociales sur le site de votre fournisseur d’authentification. Par exemple, vous pourriez permettre aux utilisateurs de se connecter à votre site web via divers fournisseurs de connexion sociale, puis de se connecter à Discourse via DiscourseConnect. Une approche similaire peut être utilisée avec OAuth2 ou SAML. Les utilisateurs peuvent se connecter à votre site web avec ces méthodes d’authentification, puis être redirigés vers Discourse pour se connecter via DiscourseConnect.

Une autre fonctionnalité perdue est que le paramètre de site Discourse invite only ne peut pas être activé en même temps que DiscourseConnect.

La capacité de synchroniser facilement les données des utilisateurs depuis une application externe vers Discourse est un avantage majeur. Les appartenances aux groupes Discourse peuvent être facilement définies à l’aide des champs add_groups et remove_groups transmis dans la charge utile SSO. Le plugin WP Discourse n’envoie par défaut aucun de ces champs, mais ils peuvent être ajoutés à la charge utile en utilisant le hook de filtre WP Discourse wpdc_sso_params.

Les appartenances aux groupes, ainsi que tout autre champ pouvant être défini dans la charge utile, peuvent également être synchronisés via une requête en arrière-plan. Pour plus de détails, consultez Synchroniser les données des utilisateurs DiscourseConnect avec la route sync_sso. Pour des informations sur la synchronisation des groupes avec le plugin WP Discourse, consultez Gérer l’appartenance aux groupes Discourse avec WP Discourse SSO.

Un autre avantage possible est que si vous disposez déjà d’une grande base d’utilisateurs sur un site externe, l’activation de DiscourseConnect permettra à ces utilisateurs de se connecter à Discourse sans avoir à créer un compte Discourse distinct.

Avec DiscourseConnect, les comptes sont liés en fonction de l’external_id transmis du site fournisseur SSO vers Discourse. Le plugin WP Discourse utilise l’ID WordPress de l’utilisateur pour l’external_id.

Oui, par défaut, tous ces champs sont définis avec l’implémentation de DiscourseConnect par WP Discourse. Comme mentionné ci-dessus, le fait qu’ils continuent d’être synchronisés à chaque connexion de l’utilisateur à Discourse dépend de la valeur de divers paramètres de site Discourse.

7 « J'aime »