Forum Linux.général mettre en place un SSO centralisé ? [RESOLU]

Posté par  . Licence CC By‑SA.
Étiquettes :
0
26
août
2014

Bonjour à tous,

Depuis quelques temps je cherche une solution pour mettre en place une authentification de type SSO pour mon réseau.
De là je ne sais pas trop comment faire, ni même ce que je dois utiliser, d'où ma question : comment mettre en place un SSO ?

Pour pouvoir me répondre l'idéal, je pense, est de vous dresser un tableau de ma situation précise et de mon besoin.

Une machine x64 sur laquelle est installé CentOS 6.5 qui distribue tous les services que j'utilise aujourd'hui :
- Bind9 pour le DNS
- dhcpd pour l'adressage IP
- Samba3 pour le partage de fichiers
- Squid pour le service proxy
- squidGuard pour le filtrage groupes/Internet

3 machines en dual-boot avec CentOS pour la distribution Linux et soit Windows XP ou 7 pour le coté Windows (je suis contrains de conserver Windows pour mes enfants qui passent leur temps à jouer dessus et ma femme qui a accepté de passer sur Linux seulement le jour où tout fonctionnera…, c'est ainsi…)

Tous ces services fonctionnent et remplissent très bien leur fonction indépendamment les uns des autres, à un détail près :
Actuellement mes utilisateurs (que je vais appeler users) doivent donc ouvrir leur session avec un couple login/mot-de-passe ; puis dès qu'ils veulent aller surfer sur Internet ils ouvrent un navigateur Internet (Firefox ou IE) et un popup apparait leur demandant un nouveau couple login/mot-de-passe.

Au début tout fonctionnait et tout le monde était content, sauf que aujourd'hui tous mes users ont changé leur mot de passe de session (soit avec Windows en passant par Samba3, soit directement sous Linux).

Mais le souci est maintenant car Samba3 fonctionne avec son backend tdbsam, et squid avec un fichier texte…

De là je pensais mettre en place un SSO en utilisant Kerberos mais bien évidement ce service utilise lui aussi sa propre database…

Donc mon idée est la suivante :
Pourquoi ne pas centraliser toutes les données login/mot-de-passe dans une base commune ?

Ben oui, les 3 voir 4 services nécessitant une authentification peuvent être connectés à une base Openldap….

Maintenant mes questions finales :
Est-il possible de faire ce que je souhaite ?
Est-il possible de réaliser ceci avec les éléments cités, savoir Openldap, Kerberos, Samba3 et Squid ?
Pour combler mon bonheur : est-il possible de relier l'authentification des systèmes Linux sur cette même base ?

Dans l'espoir d'une âme charitable qui voudra m'apporter son aide…

D'avance merci à tous pour vos réponses,

Fredouille

  • # LemonLDAP::NG

    Posté par  . Évalué à 2.

    c'est un outil pour mettre en place du SSO.

    sinon dans ton cas j'imagine bien un backend ldap qui stocke tes users/pass.
    Samba qui va chercher tes utilisateurs dans le ldap
    Squid qui va identifier tes utilisateurs dans le ldap avec NTLM
    Linux qui va chercher tes utilisateurs dans le ldap

    tu peux aussi envisager plus "simple".
    un Samba4 en controleur de domaine (pour tes windows) facilitant l'integration des windows dans le reseau
    ce samba4 fournit aussi un backend ldap pour les machines et services non windows.

    • [^] # Re: LemonLDAP::NG

      Posté par  . Évalué à 1.

      Bonjour NeoX,

      Merci de m'avoir répondu aussi rapidement, génial….

      De ta réponse je comprends que ce que je souhaite mettre en place est parfaitement possible, merci de m'avoir confirmé tout ceci.

      Sans vouloir abuser, aurais-tu des fils ou tutos à me proposer pour configurer tous ces services et ainsi mettre en place le SSO avec les services cités ?

      Je vais regarder du coté de LemonLDAP pour voir de quoi il s'agit, merci pour l'info…

      Merci,

      J'essaye souvent mais ça fonctionne pas toujours...

      • [^] # Re: LemonLDAP::NG

        Posté par  . Évalué à 2.

        le SSO c'est pour ne pas retaper son login/pass.
        le LDAP pour avoir le meme login/pass partout,

        c'est legerement different mais pratique quand meme.

        LDAP : regarde du coté de :

        • pam-ldap sous linux, ca lui dit d'aller chercher ses utilisateurs dans l'annuaire LDAP, pour a peut pres tous les services necessitant un login/pass
        • samba + ldap, pour dire à samba de prendre ses utilisateurs dans le LDAP
        • squid + ldap est aussi possible

        sur ces points là, si tu n'as pas trop d'utilisateur, tu peux gagner du temps en installant directement un nouveau samba en samba4 et en lui demandant d'etre controleur de domaine, il devient alors aussi serveur ldap pour tes autres machines.

        ensuite il faut chercher les tutos pam-ldap avec un active directory (AD), squid avec un active directory (AD), etc

        pour le SSO je n'ai pas encore fait
        mais internet et ton moteur de recherche sont tes amis.

        • [^] # Re: LemonLDAP::NG

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

          Je conseille sssd sous GNU/Linux pour gérer les accès LDAP et le cache. C'est à mon sens plus simple et plus performant que pam-ldap.

        • [^] # Re: LemonLDAP::NG

          Posté par  . Évalué à 1.

          @NeoX,

          Nous sommes bien d'accord : OpenLDAP pour n'avoir qu'une seule et même base dans laquelle sont stockés les login/mdp, et le SSO sert bien à ne taper qu'une seule fois son couple login/mdp à l'ouverture de session pour que tout le reste (nécessitant une authentification) soit transparent pour l'utilisateur, donc qu'un couple login/mdp tapé une seule fois…..

          Pour Samba4 j'y avais regardé un petit peu mais cela ne me semblait pas encore tout à fait aussi bien abouti que Samba3 car encore en développement, puis j'avais écarté cette solution parce que la base ldap est intégrée dans Samba4, pas indépendante, merci tout de même de m'avoir proposé cette possibilité.

          Par contre, je ne vois pas trop pourquoi tu me parles d'un active directory ?
          J'avais compris que l'AD était spécifique pour Windows et que Linux n'en avait pas d'utilité mais je dois surement faire erreur….

          Tu me dis également de chercher des tutos pam-ldap avec un AD mais quel peut en être l’intérêt si mes authentifications Linux passent déjà par pam-ldap ???

          Donc pour que l'on soit bien d'accord, il me faut faire dans l'ordre :
          - installer tous les paquets nécessaires pour pouvoir générer un base propre pour OpenLDAP en dynamique.
          - configurer pam-ldap pour mes users Linux.
          - configurer Samba pour utiliser la base OpenLDAP.
          - configurer Squid pour utiliser la base OpenLDAP.
          - reconfigurer pam-ldap pour être en AD.
          - configurer Kerberos pour utiliser la base OpenLDAP mettre ainsi le SSO en place.

          C'est bien ça ?

          Merci encore pour ton aide,

          Fredouille

          J'essaye souvent mais ça fonctionne pas toujours...

          • [^] # Re: LemonLDAP::NG

            Posté par  . Évalué à 2.

            l'interet de l'AD c'est que c'est compatible windows,
            sinon ton windows doit parler à Samba3 qui lui ira parler à openLDAP.

            samba4 integre l'annuaire, mais aussi le DNS, etc
            et se fait passer pour un ldap, mais avec des attributs de type AD plutot que openLDAP
            par exemple "sAMAccount" plutot que "uid" ou "cn"

            tu peux donc utiliser pam-ldap pour aller chercher tes utilisateurs/groupes dans le samba4, mais en utilisant le tuto pam-ldap sur AD
            les options/extensions "AD" ne sont utiles que si tu remplaces le couple OpenLDAP/Samba3 par un Samba4

            • [^] # Re: LemonLDAP::NG

              Posté par  . Évalué à 1.

              OK,

              Donc selon toi, le plus simple est de passer par un Samba4 qui fait tout tout seul…

              Donc je configure Samba4 directement en tant qu'AD, puis je configure sssd pour gérer les accès LDAP et cache depuis Linux, puis je couple Squid sur le ldap du Samba4 et je finis par Kerberos couplé sur la base LDAP de Samba4….

              OK, je pense que tout ceci va me prendre du temps pour être bien au point et fonctionnel mais j'espère pouvoir y arriver…

              Merci encore pour ton aide,

              @+

              Fredouille

              J'essaye souvent mais ça fonctionne pas toujours...

              • [^] # Re: LemonLDAP::NG

                Posté par  . Évalué à 2. Dernière modification le 26 août 2014 à 23:25.

                voici les notes que j'avais prise y a presque un an pour installer samba4 sur ubuntu12.04
                si je me souviens bien, à la fin il te donne un fichier de config pour kerberos,

                si tu veux une interface web pour permettre de changer le mot de utilisateur par lui meme,
                j'utilise "self service password"
                http://ltb-project.org/wiki/download

                Installation de samba4 sur ubuntu 12.04

                ajouter le depot zentyal 3.3

                deb http://archive.zentyal.org/zentyal 3.3 main extra

                mettre à jour, desinstaller bind9 et dnsmasqd, installer samba4 de zentyal

                aptitude update
                aptitude purge bind9 dnsmasqd
                aptitude install samba4

                le 12/02/2014, cela installe samba4.1.0

                supprimer le fichier /etc/samba/smb.conf

                configurer le samba en domain controller avec la commande

                samba-tool domain provision --use-rfc2307 --interactive

                redemarrer le service ou la machine.

                service samba4 restart

                sur une machine qui serait le controleur de domaine secondaire

                meme operation sur le controleur secondaire, sauf qu'on ne demandera pas l'option provision mais l'option join.

                samba-tool domain join xxxx.yyyy DC -Uuser_with_adminrights

                pour memoire

                REALM = example.com
                domain = example

                ldap => dc=example,dc=com

                infos pour la connexion de service utilisant ldap

                dn => cn=monuser,cn=Users,dc=example,dc=com

                • [^] # Re: LemonLDAP::NG

                  Posté par  . Évalué à 1.

                  @NeoX,

                  Super, merci bien pour toutes tes infos, je les suivrai attentivement…

                  Par contre moi je suis CentOS, j'espère que je n'aurai pas de souci particulier pour mettre en place tout ceci.

                  Également, il y a un moment où tu me dis de supprimer le fichier /etc/samba/smb.conf : OK, mais si je veux configurer samba4 en contrôleur de domaine il me faut bien un fichier smb.conf en place ou alors la commande # samba-tool domain provision --use-rfc2307 --interactive se chargera de réécrire le fichier de conf ??

                  Sans vouloir abuser, tu aurais le même genre d'instructions à me proposer pour la configuration de sssd ??

                  Et juste par curiosité, tu aurais également un tuto viable et fiable pour configurer un OpenLDAP pour faire la même config sur une de mes vieille machine ?
                  Juste pour voir si je pourrai y arriver…

                  Encore un grand merci pour toutes tes réponses, tes conseils ainsi que tes commandes, vraiment trop génial…

                  Merci bien,

                  Fredouille

                  J'essaye souvent mais ça fonctionne pas toujours...

                  • [^] # Re: LemonLDAP::NG

                    Posté par  . Évalué à 2.

                    dans mon tuto il faut supprimer le smb.conf car il est partiellement reecrit par la commande samba-tool mais certaines infos ne passent pas.
                    en le supprimant il reecrit à partir de rien, donc il met juste ce qu'il faut.

                    pour samba, regarde deja si ton centOS propose samba4.1, si oui installe le, repond juste au question, ca devrait suffire
                    pour sssd, j'avais essayé mais pas reussi (avec opneLDAP ou Samba4)

                    pour les tutos openldap/samba3, y en a plein le net, j'ai jamais fait ce type d'installation.
                    tout juste un openldap par defaut puis des linux en pam-ldap

                    • [^] # Re: LemonLDAP::NG

                      Posté par  . Évalué à 1.

                      @NeoX,

                      Merci pour ta confirmation, cela confirme ce que je pensais quant à la réécriture automatique du smb.conf.

                      Pour Samba4, CentOS me propose une version samba4-4.0.0-63, mais pas de samba4.1.
                      Le temps de lancer une vieille machine, de l'installer et je regarde ça…

                      Bon ben pas de chance pour moi pour configurer sssd avec OpenLDAP, je vais chercher..

                      Mais autrement Oui, c'est bien ça, je parlais bien d'un OpenLDAP par défaut et les commandes qui vont bien pour mettre au point pam-ldap….

                      En fait ce que je crains le plus c'est le OpenLDAP car je n'y connais vraiment rien du tout dedans et j'ai tout le temps peur de faire une ânerie…

                      Pour le reste, mes recherches menées sur Internet étaient assez précises pour trouver des articles intéressants pour configurer Samba3, Squid et peut-être même Kerberos, mais des quelques recherches faites cette nuit sur OpenLDAP+sssd n'ont pas donné grand chose, je vais continuer par curiosité et essayer la solution avec Samba3 + OpenLDAP sur une autre vieille machine en parallèle de Samba4, juste pour voir…

                      Merci encore pour tes réponses et ton aide,

                      Fredouille

                      J'essaye souvent mais ça fonctionne pas toujours...

Suivre le flux des commentaires

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