You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2018-05-15 20:19:21

Yaku10
Member
Registered: 2018-05-15
Posts: 1

SSO GLPI sous ubuntu 16.04 TLS et active directory sous Win srv 2k12

salut ,


Après plusieurs tentatives  d’implémentation d SSO dans mon LAB, j'ai perdu la bout de fil alors la meilleur pour poser mon question est avoir de l'aide c'est La devant vous,

tous simplement, j'utilise GLPI Version 9.2.3 installé sur un machine qui run Ubuntu, Active directory s’exécute sur un serveur Windows serveur 2012.

Comment je peut implémenté le SSO dans cette environnement, sur internet j'ai trouver plusieurs tutos mais le Prob c'est que tous utilisent des version ultérieur très ancienne pour les Version 9.xx je n'ai tomber sur Rien.

sincèrement,

Offline

#2 2018-05-24 11:35:36

soniyas9877
Member
Registered: 2018-05-24
Posts: 3
Website

Re: SSO GLPI sous ubuntu 16.04 TLS et active directory sous Win srv 2k12

Is this true about it
After numerous weeks, Teclib’ is satisfied to announce the discharge of GLPI nine.2.3.

you may download the nine.2.3 archive on github.

You’ll discover beneath the changes of this bugfixes model:

cover closed obligations on crucial,
brief search in stored searches panel,
fix image in FAQ for nameless customers,
possibility to add an analytics javascript,
diverse fixes on additives,
and lots of more!

Offline

#3 2018-05-24 16:29:23

nbriche
Member
From: Picardie
Registered: 2011-05-23
Posts: 55

Re: SSO GLPI sous ubuntu 16.04 TLS et active directory sous Win srv 2k12

Alors c'est marrant parce que justement, j'allais commencer un post épique sur le sujet et je me demandais dans quelle catégorie le mettre.

Spoiler: Oui, ça marche.

Spoiler 2: je vous fais un copier/coller de la procédure que je viens d'écrire pour mon équipe; y'a peut-être des bourdes (notamment dues à l'anonymisation des noms de domaines et serveurs), mais dans l'ensemble ça devrait passer.

Spoiler 3: la config est probablement juuuuuuste un peu overkill pour la plupart des situations. Mais c'est plus facile de l'adapter à une situation plus simple (serveur unique, pas de proxy, pas d'alias...) que l'inverse.

[EDIT] J'ai oublié la partie config GLPI, la suite au prochain épisode... [/EDIT]


Extrait:


Le SSO est défini ici comme l'authentification automatique sur un site en fonction de la session Windows en cours.

Cette procédure décrit l’implémentation d’un SSO à plusieurs serveurs et plusieurs domaines, avec proxy HAProxy et backends Apache sous Linux Ubuntu (un backend par domaine).

L'implémentation du SSO implique principalement la configuration et la gestion des tickets Kerberos sur le serveur Web, puis la configuration des navigateurs.

        2.1. Configuration de base Kerberos

Installation de base de Kerberos (package krb5-user) puis éditer /etc/krb5.conf.

[libdefaults]
    default_realm = DOMAIN1.LAN
    kdc_timesync = 1
    ccache_type = 4
    forwardable = true
    proxiable = true
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5


[realms]
DOMAIN1.LAN = {
    kdc = domain1.lan
    admin_server = domain1.lan
}
DOMAIN2.LAN = {
    kdc = domain2.lan
    admin_server = domain2.lan
}

[domain_realm]
    .domain1.lan = DOMAIN1.LAN
    domain1.lan = DOMAIN1.LAN
    .domain2.lan = DOMAIN2.LAN
    domain2.lan = DOMAIN2.LAN


(à adapter selon les domaines)


        2.2. Création d’utilisateurs Kerberos spécifiques

Cet utilisateur sera le container pour les SPN des serveurs de cette application Web. Un utilisateur par domaine et par serveur devraient être créés(ex : krb_srv1, krb_srv2) ; les identifiants devraient si possible être identique sur chaque domaine.

Une fois les utilisateurs créés, assigner les SPN, en n’oubliant pas les éventuels alias DNS :

setspn -S HTTP/srv1.fqdn krb_srv1
setspn -S HTTP/appalias.fqdn krb_srv1

setspn -S HTTP/srv2.fqdn krb_srv2



        2.3. Création des keytabs

Une fois tous les utilisateurs créés, on exporte leurs keytab pour les intégrer à Apache. Comme il y aura plusieurs keytabs, on les concatène d’office à l’export:

ktpass -princ HTTP/appalias.fqdn@DOMAIN1.LAN -mapuser krb_srv1@domain1.lan -pass PASSWD -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -out kerberos-app-domain1.keytab

ktpass -princ HTTP/srv2.fqdn@DOMAIN1.LAN -mapuser krb_srv2@domain1.lan -pass PASSWD -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -in kerberos-app-domain1.keytab -out kerberos-app-domain1.keytab

La même procédure est répétée sur chaque domaine.

On récupère ensuite ces fichiers sur le premier serveur Web :

kerberos-app-domain1.keytab
kerberos-app-domain2.keytab

Puis on les concatène avec ktutil dans un fichier keytab unique :

user@srv1 ~$ ktutil
> rkt kerberos-app-domain1.keytab
> rkt kerberos-app-domain2.keytab
> wkt kerberos-app.keytab
> q

C’est ce fichier final qui sera référencé dans Apache et qui servira de clé d’accès aux domaines.


        2.4. Apache

Apache doit être installé avec le module mod_auth_kerb. Dans le cas d’un serveur backend, il doit également être configuré pour reconnaître son frontend.

Un soin particulier devra être donné à déterminer quelles ressources seront soumises à l’authentification Kerberos, et lesquelles ne le seront pas.

Voici la configuration finale d’un backend GLPI :

<VirtualHost *:80>
  ServerName srv-glpi-web02.domain2.lan
  ServerAlias appalias.fqdn

  DocumentRoot /var/www/html/glpi

     RemoteIPInternalProxy x.x.x.x
  HttpProtocolOptions Unsafe
  RemoteIPHeader X-Forwarded-For

  <Location "/plugins/">
    AuthType None
       Require all granted
  </Location>

  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>

  <Directory "/var/www/html/glpi">
    Options None
    AllowOverride All

    AuthType Kerberos
    AuthName "Authentification GLPI par Kerberos (Web02)"
    KrbAuthRealms DOMAIN1.LAN DOMAIN2.LAN
    KrbServiceName Any
    Krb5Keytab /etc/apache2/kerberos-app.keytab
    KrbMethodNegotiate On
    KrbMethodK5Passwd On
    require valid-user
    LogLevel warn

  </Directory>

  <Files ~ "\.(png|css|js)$">
    Require all granted
  </Files>

  ErrorLog ${APACHE_LOG_DIR}/glpi_error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined

</VirtualHost>


L’arborescence GLPI est sujette à l’authentification, mais des exceptions sont posées pour les ressources statiques (images, fichiers CSS et Javascript) ainsi que pour les points d’entrée des plugins (inventaire FusionInventory par exemple).


La config HAProxy (haproxy.conf):

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    # Default SSL material locations
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # Default ciphers to use on SSL-enabled listening sockets.
    # For more information, see ciphers(1SSL). This list is from:
    #  https://hynek.me/articles/hardening-you … l-ciphers/
    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
    ssl-default-bind-options no-sslv3

defaults
    log    global
    mode    http
    option    httplog
    option    dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http
    option forwardfor

frontend http-in
    bind appalias.fqdn:80
    default_backend glpi_servers
    option             forwardfor

backend glpi_servers
    balance source
    hash-type consistent
    # stick-table type ip size 1m expire 24h
    # stick on src
        # cookie SERVERID insert indirect nocache
    server web01 srv-glpi-web01.domain1.lan:80 check # cookie web01
    server web02 srv-glpi-web02.domain2.lan:80 check # cookie web02



        2.5. Configuration des navigateurs

Apache authentifie en fonction du ticket Kerberos transmis par le navigateur. Par sécurité, ces derniers ne les communiquent pas automatiquement, et doivent donc être configurés spécifiquement.

               Firefox

Pour les versions antérieures à v60, la configuration se fait dans about:config, manuellement ou par autoconfig. Renseigner les clés network.negotiate-auth.delegation-uris et network.negotiate-auth.trusted-uris avec la liste des domaines et/ou sites concernés :

network.negotiate-auth.delegation-uris : .domain1.lan, .domain2.lan, appalias.fqdn
network.negotiate-auth.trusted-uris : .domain1.lan, .domain2.lan, appalias.fqdn

A partir de la v60 ESR, Firefox intègre des GPO contrôlant ces clés.


               Chrome

Chrome intègre des GPO :

    • Google Chrome/Règles pour l'authentification HTTP:
        ◦ Désactiver la consultation CNAME lors de la négociation de l'authentification Kerberos (Activer)
        ◦ Liste blanche des serveurs d'authentification (*.domain1.lan, *.domain2.lan, appalias.fqdn)
        ◦ Liste blanche des serveurs de délégation Kerberos (*.domain1.lan, *.domain2.lan, appalias.fqdn)

               Internet Explorer

Internet Explorer 11 mérite de brûler dans les flammes de chaque cercle de l'enfer indépendamment. De ce fait, je n'ai pas à ce jour de configuration fonctionnelle.

Last edited by nbriche (2018-05-24 17:49:52)

Offline

#4 2018-07-27 09:12:17

Lucy357
Member
Registered: 2018-07-27
Posts: 2

Re: SSO GLPI sous ubuntu 16.04 TLS et active directory sous Win srv 2k12

Such configuration allows for a Windows user runing Internet Explorer to access GLPI without the need to enter his/her username and password. Instead, the user's Windows login username/password will be automatically used to validate access to GLPI. Liteblue Login

Last edited by Lucy357 (2018-07-27 09:12:43)

Offline

#5 2018-07-27 19:52:19

nbriche
Member
From: Picardie
Registered: 2011-05-23
Posts: 55

Re: SSO GLPI sous ubuntu 16.04 TLS et active directory sous Win srv 2k12

IE but also Chrome and Firefox; any browser that can transmit the user's authentication data. The Big Three can be told to do so by GPO under Windows or by configuration file under Linux (in the case of Firefox and Chrome); I don't know about others.

Last edited by nbriche (2018-07-27 19:58:39)

Offline

#6 2018-09-25 19:42:46

nbriche
Member
From: Picardie
Registered: 2011-05-23
Posts: 55

Re: SSO GLPI sous ubuntu 16.04 TLS et active directory sous Win srv 2k12

liteblueco wrote:

This procedure describes the implementation of SSO to multiple servers and multiple domains, with HAProxy proxy and Apache backends running Linux Ubuntu (one backend per domain). liteblue

No, actually, this is a scam attempt. Please remove yourself from human society at your earliest convenience.

Offline

#7 2019-01-07 05:19:22

alexpslab
Member
From: LA, US
Registered: 2019-01-07
Posts: 3
Website

Re: SSO GLPI sous ubuntu 16.04 TLS et active directory sous Win srv 2k12

How I can implement the SSO in this environment, on the internet I find several tutorials but the Prob is that all use later version very old for Version 9.xx I did not fall on Nothing.

Offline

#8 2020-01-30 17:00:44

nlussier
Member
Registered: 2020-01-30
Posts: 1

Re: SSO GLPI sous ubuntu 16.04 TLS et active directory sous Win srv 2k12

Bonjour et merci pour le tuto !
Tout semble fonctionner mais GLPI me demande mon identifiant mot de passe (alors que les log apache montre qu'il detect mon user)
Je pense que le soucis vient de la conf GLPI des idées ?
Merci d'avance
Bon j'ai trouvé dans ce post 160674 :
Dans GLPI
- Un de tes AD renseigné (Configuration > Authentification > Annuaires LDAP)
- Champs de stockage de l'identifiant dans la requête HTTP : REMOTE_USER (Configuration > Authentification > Autres )
- Supprimer le domaine des identifiants de la forme  identifiant@domaine : Oui
- sync de tes utilisateurs AD (Administration > Utilisateurs > Annuaires LDAP > Importation de nouveaux utilisateurs )

Last edited by nlussier (2020-01-30 17:14:47)

Offline

Board footer

Powered by FluxBB