Forum général.cherche-logiciel Quel logiciel pour gérer une base d'utilisateurs centralisée ?

Posté par  . Licence CC By‑SA.
1
29
mai
2018

Bonjour,

J'ai récemment acquis un serveur dédié chez Kimsufi pour quitter Scaleway (et son support IPv6 en carton). Du coup ça implique une migration des services d'un serveur vers un autre. Je voudrais profiter de cette migration pour commencer à utiliser Ansible et surtout un répertoire centralisé des utilisateurs pour avoir un login/mot de passe unique.

J'ai déjà par le passé tenté de déployer OpenLDAP, c'est complexe et je ne suis pas sur de vouloir intégrer un composant que je ne maîtrise pas bien. Je me demande aussi si c'est la solution la meilleure en terme de simplicité et robustesse pour mon cas d'usage.

Au niveau du contexte j'administre un serveur à destination de la famille et quelques amis. Donc j'ai pas besoin de haute-disponibilité, redondance et d'autres joyeuseté comme ça.

Mes contraintes sont les suivantes:

  • Gestion de compte centralisé
  • Interface web et/ou cli pour l'admin
  • Interface web pour les utilisateurs (changement du mot de passe principalement)
  • Intégration avec les services suivant: postfix, dovecot, nextcloud, ejabberd, gitlab et éventuellement TinyTinyRSS et Matomo (Piwik)

Dans les nice to have j'ai ça:

  • Single Sign On (mais à priori avec un nextcloud bien configuré je dois pouvoir avoir accès aux emails directement)
  • Authentification à multiple facteurs possible

Que me conseiller pour gérer ma base d'utilisateurs centralisée ? Je ne tiens pas à utiliser une techno en particulier, je suis ouvert à toute solution. Si vous avez des bonnes ressources pour apprendre je suis preneur.

amdg

PS: Pour ceux qui veulent troller j'ai décidé d'utiliser ArchLinux sur ce nouveau serveur.

  • # Fédération

    Posté par  (site Web personnel) . Évalué à 1.

    yop, si tu souhaites gérer des authentifications utilisateurs sur des services web (type nextcloud) la fédération est là pour ça (SAML V2, OpenId Connect) !
    Un petit keycloak (avec ou non un ldap en backend) te permettra de faire les authentifications, délégué à d'autre provider d'identité pour les utilisateur qui le souhaite, utiliser l'application FreeOTP pour faire de l'authentification forte pour les utilisateur qui le souhaite, gérer une politique de mot de passe et de renouvellement,…
    Par contre pour le mail, nextcloud fait du rejeu de mot de passe (de mémoire), qu'il n'aura plus. L'authentification sur le mail sera donc plus délicat. Il est certainement possible (si pas déjà fait !) de faire dès choses quand même !

    • [^] # Re: Fédération

      Posté par  . Évalué à 1.

      Donc si je te suis je dois déployer Keycloak qui va gérer l'authentification des utilisateurs depuis un peu n'importe quel type d'annuaire si j'en crois leur site.

      Mais après je fais quoi ? J'arrive pas à comprendre comment l'utilisateur va pouvoir ensuite accéder à son nextcloud… Et ça marche pour IMAP et SMTP ?

      Bon et puis c'est du Java et il n'y pas de paquets pour les distributions classiques, cela dit il y un candidat sur AUR mais il pas à jour…

      Et c'est quoi cette histoire de fédération ? Je fédère quoi avec quoi ?

      • [^] # Re: Fédération

        Posté par  (site Web personnel) . Évalué à 3. Dernière modification le 29/05/18 à 16:15.

        Beaucoup, (mais pas toutes, c'est surtout dans le monde web, même si ça évolue) applications sont capable de déléguer leur authentification à une application dédié (dans le language SAML V2, on l'appel IdP : Identity Provider).
        lorsque l'application à besoin d'authentifier un utilisateur, elle le redirige vers son IdP qui se charge de la partie authentification proprement dite (et est capable de détecter si un utilisateur est déjà connecter via sa session et donc de ne pas redemander l'authentification dans se cas. C'est donc transparent pour l'utilisateur). Une fois l'utilisateur authentifié, l'IdP envoie un jeton d'authentification à l'application. L'appliation n'a plus qu'a truster ce dernier pour ouvrir "ses portes" sans avoir connaissance des identifiants mot de passe de l'utilisateur.

        en SAML la sécurité se base essentiellement par de la signature de jetons (le chiffrement et aussi possible). Tout passe par le navigateur, il n'y a pas besoin d'ouverture de flux.

        en OpenId Connect, cela depend du token utilisé et du flow utilisé :

        • access_token : doit être valider par le client au prêt de "l'IdP"

        • un id_token, tout comme SAML est signé et est donc autoporteur

        Note : OpenId Connect est utilisé par google, facebook,… pour leur authentification sociale. C'est aussi le protocole utilisé par france connect. SAML lui est beaucoup utilisé en entreprise ou université (exemple renater : https://services.renater.fr/federation/introduction/comment-ca-marche) car la techno est plus ancienne.

        Note 2 : d'autres IdP que keycloak existe : shibboleth, simplesamlphp, …

        • [^] # Re: Fédération

          Posté par  . Évalué à 1.

          Je comprends mieux, merci pour les détails !

          En regardant un peu la doc de Keycloak je comprends qu'il peut gérer son propre annuaire ou utiliser une source existante.

          Dans mon cas il va falloir que je puisse utiliser le même annuaire d'utilisateur avec Nextcloud, le serveur mail et ejabberd. Tu as déjà fait ça ? Comment tu procéderais ?

          Petite question supplémentaire, connais-tu la différence en FreeIPA et Keycloak ?

          • [^] # Re: Fédération

            Posté par  (site Web personnel) . Évalué à 2.

            Pour la base Nextcloud > il provisionne à la volé les comptes. quand le compte est désactivé coté IdP, l'utilisateur ne peut plus s’authentifie
            serveur mail et ejabberd : Je ne sais pas. pas encore eu l’occasion de jouer. Mais il est possible en se basant sur le même référentiel (ldap ?) au minimun d'avoir du Common sign on et d'utiliser IdP pour la gestion des utilisateurs et "des authentifications web"

            FreeIPA permet de faire de la gestion d'identité (et pas de l'authentification), qui est peut-etre du coup la solution pour ton cas https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-186/Gestion-d-identite-avec-FreeIPA

  • # Hors sujet − IPv6 / kimsufi

    Posté par  . Évalué à 3.

    J'ai récemment acquis un serveur dédié chez Kimsufi pour quitter Scaleway (et son support IPv6 en carton).

    Hé ben on n'est pas sortis du sable… Je pense que ce n'est que Scaleway et pas tout online.net qui a un IPv6 en carton… du moins je l'espère. Parce que l'IPv6 chez OVH c'est clairement pas une priorité.

    • Quand ça casse, en général c'est pas réparé avant un temps considérable (plusieurs heures)
    • On peut piquer les IPv6 des voisins et personne ne s'en rend compte
    • La config est disons «pas propre»

    Je t'invite à lire cet article : https://otacon22.com/2016/02/21/two-hosting-providers-ipv6-setups-compared-ovh-online-net/

    • [^] # Re: Hors sujet − IPv6 / kimsufi

      Posté par  . Évalué à 2.

      Pour te donner un ordre d'idée du statut de la merde chez Scaleway:

      • En IPv4 (l'ancien monde en pénurie)
        • Ton serveur est derrière un NAT IPv4, ça leur permet de te filer une IPv4 de manière dynamique facilement, pourquoi pas
        • Le reverse IPv4 fonctionne bien
        • Ton IPv4 est bien conservée quand tu redémarres le serveur
      • En IPv6 (le monde moderne depuis déjà 20 ans)
        • L'IPv6 est directement sur ta machine (ce qui me parait plus logique que l'option NAT en IPv4) pourquoi pas
        • Impossible de configurer le reverse IPv6 (exit le mail en IPv6)
        • Quand tu redémarres le serveur, suivant la méthode de redémarrage, tu perds ton IPv6 (génial)

      Dans les autres trucs random:

      • Tu peux demander à ne pas avoir d'IPv4 publique parce que tu es radin pour palier à la pénurie d'IPv4. Mais dans ce cas là ton serveur n'a pas d'accès à internet en IPv6. oui.
      • Parfois ça casse, puis ça revient, puis ça casse. Le support est assez vague sur la question.
      • Sûrement d'autres choses que j'ai oublié

      Bref c'est la merdouille. Alors peut-être que chez OVH c'est pas dans les règles de l'art mais je peux:

      • Avoir une vraie ip fixe en v4 et v6
      • Configurer le reverse en v4 et v6

      Merci pour le lien ça à l'air intéressant.

      • [^] # Re: Hors sujet − IPv6 / kimsufi

        Posté par  . Évalué à 3.

        Je fais de l'IPv6 sans soucis sur un serveur online.net, y compris avec des reverse, et effectivement si t'as pas par exemple des VMs sur ton serveur l'IPv6 d'OVH est suffisante.
        Par contre quand t'as des VMs ou que tu veux déléguer un bout de ton IPv6, là c'est la mort.

        • [^] # Re: Hors sujet − IPv6 / kimsufi

          Posté par  . Évalué à 2.

          Pour l'IPv6 chez Online j'espère qu'il fonctionne bien. Mais il faut savoir que la stack Online est différente de la stack Scaleway ;)

  • # Yunohost

    Posté par  . Évalué à 1.

    Yunohost semble répondre à ton cahier des charges, tu y as songé ?

    • [^] # Re: Yunohost

      Posté par  . Évalué à 1.

      J'y ai pensé, mais je préfère comprendre et apprendre en administrant ce serveur. Du coup Yunohost fonctionne en effet, mais j'apprendrai moins et c'est du Debian (j'en ai marre de Debian).

  • # openldap et ses greffons qui vont bien

    Posté par  . Évalué à 3.

    openldap pour le backend de gestion des comptes (ou samba4 en mode active directory si tu as aussi des posts windows)

    puis les greffons LDAP de tous les outils que tu as cités, voire changer d'outils s'il ne dispose pas d'outils,
    à une epoque je faisait l'authentification SSH via PAM et son module LDAP,

    du coup des logiciels qui ne sont pas LDAP nativement (ou via un module/plugin) peuvent peut-etre passé par PAM

    pour l'interface web pour changer le mot de passe :

    • [^] # Re: openldap et ses greffons qui vont bien

      Posté par  . Évalué à 2.

      Je sais que c'est possible comme ça, mais LDAP c'est assez complexe…

      Je n'ai jamais réussi à trouver un guide pour construire mon annuaire par exemple. Tout le monde que c'est important de bien le construire, mais personne n'explique ce que ça veut dire !

      As-tu des conseils à me donner ?

      • [^] # Re: openldap et ses greffons qui vont bien

        Posté par  . Évalué à 2.

        ben si tu veux juste gerer des groupes et des utilisateurs,
        tu fais l'installation par defaut,
        tu prends ton outil de gestion de ldap (phpldapadmin ou autre)

        et tu crees tes groupes et tes utilisateurs

        evidemment si tu veux faire des trucs qui ne sont pas definit dans les schemas habituels, par exemple utiliser le ldap pour stocker des données pour ton appli developpée en interne,
        alors oui, il te faudra sortir l'editeur de configuration pour creer ton schema d'entreprise, et definir ton arbre.

        mais je crois pouvoir dire qu'on en n'est pas là ?

        • [^] # Re: openldap et ses greffons qui vont bien

          Posté par  . Évalué à 1.

          Je comprends, je ne sais pas trop si je vais retenter une install. Keycloak proposé plus haut me plait bien, il intègre directement la SSO et le 2FA.

          Le seul problème c'est pour postfix et ejabberd.

          Tu as des expériences avec 2FA et SSO avec LDAP ?

          • [^] # Re: openldap et ses greffons qui vont bien

            Posté par  . Évalué à 3.

            Tu pourrais commencer à regarder du côté de FreeIPA (sur Fedora c'est facile à installer). Ça intègre LDAP + Kerberos + whatzillions de trucs pour couvrir SSO, 2FA…

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.