Configurer une authentification par SSO
Exemple d'architecture SSOâ
Voici un exemple dâarchitecture SSO avec LemonLDAP :
Lâutilisateur sâauthentifie sur le portail SSO.
Le portail dâauthentification vĂ©rifie les droits dâaccĂšs auprĂšs du serveur LDAP.
Le serveur LDAP renvoie les donnĂ©es de lâutilisateur.
Le portail dâauthentification crĂ©e une session pour stocker les donnĂ©es de lâutilisateur et renvoie un cookie SSO Ă lâutilisateur.
Lâutilisateur est redirigĂ© vers Centreon Web et interceptĂ© par le handler SSO qui vĂ©rifie les droits dâaccĂšs de lâutilisateur.
Le handler envoie une requĂȘte Ă Centreon Web avec lâen-tĂȘte dâauthentification (ex: HTTP_AUTH_USER).
Centreon Web vĂ©rifie les droits dâaccĂšs auprĂšs du serveur LDAP grĂące Ă lâen-tĂȘte de la requĂȘte.
Le serveur LDAP renvoie les informations de lâutilisateur.
Centreon Web renvoie les informations au handler.
Le handler SSO transfĂšre les informations Ă lâutilisateur.
Configurer une authentification par SSOâ
Le SSO est géré par Apache : modifiez la configuration Apache pour inclure les paramÚtres de configuration.
Remplissez les champs suivants à la page Administration > ParamÚtres > Centreon web, section Propriétés d'authentification.
- La case Activer l'authentification SSO active l'authentification SSO.
- Champ Mode SSO :
- Seulement SSO : l'authentification doit avoir lieu uniquement par SSO (toute autre adresse que celle des clients de confiance sera bloquée)
- Mixte : les utilisateurs autres que les clients de confiance pourront se connecter par identifiant/mot de passe. Vous devez quand mĂȘme remplir le champ Adresse des clients de confiance SSO.
- Le champ Adresses des clients SSO de confiance indique quelles sont les adresses IP/DNS qui seront autorisées à se connecter en SSO (par exemple l'adresse d'un reverse proxy). Séparez les adresses par une virgule.
- Le champ Adresses des clients de bloqués indique quelles sont les adresses IP/DNS des clients qui seront refusés.
- Le champ EntĂȘte HTTP SSO indique la variable de l'en-tĂȘte qui sera utilisĂ©e comme login/pseudo.
- Entrez éventuellement dans le champ Chaine de recherche (pattern) pour l'authentification (login) une expression réguliÚre à rechercher dans l'identifiant. Par exemple, entrez /@.*/ pour trouver la fin de l'adresse email de votre identifiant.
- Entrez dans le champ Chaine de remplacement (pattern) pour l'authentification (login) la chaßne par laquelle remplacer celle définie dans le champ Chaine de recherche (pattern) pour l'authentification (login). Laissez le champ vide pour supprimer cette chaßne.
La fonctionnalitĂ© SSO doit ĂȘtre activĂ©e seulement dans un environnement dĂ©diĂ© et sĂ©curisĂ© pour le SSO. Les accĂšs directs des utilisateurs Ă Centreon Web doivent ĂȘtre dĂ©sactivĂ©s.
Exemple de configurationâ
Exemple de configuration d'Apache pour Kerberos (extrait du fichier /etc/httpd/conf.d/10-centreon.conf) :
<Location /centreon>
AuthType Kerberos
AuthName "Kerberos Login"
KrbServiceName HTTP/supervision.int.centreon.com
RequestHeader set X-Remote-User %{REMOTE_USER}s
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbSaveCredentials Off
KrbVerifyKDC On
KrbAuthRealms SUPERVISION.INT
Krb5KeyTab /opt/rh/httpd24/root/etc/httpd/conf/centreon.keytab
<RequireAny>
# Allow this IP without auth
Require ip xx.xx.xx.xx xx.xx.xx.xx xx.xx.xx.xx
# Everyone else needs to authenticate
Require valid-user
</RequireAny>
</Location>