Salut, j’ai réussi à configurer l’intégration SAML et j’ai maintenant quelques comptes avec un compte associé SAML.
Ma question est de savoir si je peux désactiver la connexion locale pour les utilisateurs qui ont un compte SAML afin qu’ils ne puissent pas se connecter avec un nom d’utilisateur/mot de passe ?
Oui. Si SAML fonctionne, vous pouvez désactiver les connexions locales ; je pense que cela désactivera également les connexions par e-mail, vous n’aurez donc pas besoin de le faire non plus.
Oui, je connais cette option, mais c’est une option globale, j’en aurais besoin par utilisateur.
La moitié de mes utilisateurs sont internes, l’autre moitié est externe.
Les utilisateurs externes ne peuvent utiliser que la connexion locale, les internes doivent utiliser SAML, ici j’aimerais supprimer (ou désactiver) la possibilité de connexion locale.
Comment cela fonctionnerait-il ? S’ils ne sont pas connectés, comment cela pourrait-il être une option par utilisateur ?
Je suppose que vous pourriez avoir un plugin qui refuserait de les connecter si l’utilisateur appartenait à un certain groupe et n’avait pas utilisé SAML. Je pense que cela prendrait 2 à 4 heures de travail ? Peut-être plus avec des spécifications appropriées. Mais je n’ai pas regardé. Vous pourriez demander sur Marketplace si vous avez un budget.
N’oubliez pas qu’il ne suffit pas de collecter les fonds nécessaires pour faire écrire un plug-in. Vous devrez également le maintenir afin qu’il continue de fonctionner lors des mises à niveau de Discourse.
Si vous n’en avez pas les moyens et que vous n’avez pas les compétences nécessaires pour écrire quelque chose vous-même, vous devrez peut-être vous contenter que les utilisateurs se connectent occasionnellement localement plutôt que d’utiliser l’authentification unique (SSO).
vous avez raison. Une option peut être de changer leur mot de passe, mais je pense que je ne peux pas les empêcher de le réinitialiser et de réutiliser la connexion locale.
Le SAML est un IDM central et n’est accessible que depuis le réseau local interne (d’entreprise), tandis que le serveur Discourse est public.
Nous aimerions que les utilisateurs internes ne puissent se connecter que depuis le bureau (ou le VPN), mais bien qu’ils puissent utiliser la méthode de connexion locale, ils peuvent se connecter de partout et nous ne pouvons pas désactiver leur connexion via SAM/IDM (cela doit être fait manuellement dans le forum).
Ce n’est pas grave, mais nous avons une politique qui nous oblige à nous connecter à l’IDM central si possible.
Vous pourriez ajouter vos utilisateurs internes (ceux qui se connectent via SAML) à un groupe. Ensuite, masquer la section de connexion locale à ce groupe à l’aide de JS. Vous pourriez également ajouter du JS pour masquer la connexion SAML aux utilisateurs n’appartenant pas à ce groupe.
Ce n’est qu’une solution de contournement, mais elle pourrait suffire à dissuader vos utilisateurs d’utiliser la mauvaise connexion.
Mais comme ils ne seront pas connectés lorsqu’ils seront sur la page de connexion, il n’y a aucun moyen de masquer la connexion SAML à ceux qui ont des connexions SAML. Il serait peut-être possible de faire quelque chose pour masquer la connexion SAML à ceux qui ne sont pas sur l’adresse IP de l’entreprise, mais je ne sais pas comment faire.
Je ne suis pas sûr que ce soit utile, car cela ne fonctionnera pas de toute façon. Si l’adresse SSO n’est pas valide en externe, le navigateur ne pourra pas l’atteindre sur l’internet public.
SAML est un protocole d’authentification, pas un IdM ou un IdP - il doit consommer des données d’ailleurs. Il se peut que votre IdM prenne également en charge SAML, mais à moins que vous ne puissiez nous dire quel est ce système backend, nous aurons du mal à vous aider ici.
Oui, je le sais, le service d’authentification est un ADFS interne. Mais ma question ne porte ni sur SAML ni sur ADFS, car la connexion externe fonctionne parfaitement, j’aime beaucoup ça.
Je voudrais savoir s’il existe un moyen d’activer une seule source d’authentification dans un compte et de désactiver toutes les autres, ou, en d’autres termes, de désactiver la connexion locale pour les utilisateurs qui ont un SSO fonctionnel.
Je comprends que cela puisse se produire après une tentative de connexion uniquement, cela ne poserait pas de problème.
Vous devriez créer un plugin qui ferait quelque chose comme vérifier s’ils sont membres d’un groupe, puis les déconnecter s’ils sont dans le groupe must_use_saml et ne se sont pas connectés avec SAML.
Cela prend probablement une heure ou deux pour un développeur familier avec ce genre de choses, en fonction de la quantité de tests requis et de la création de spécifications.