Le module d'authentification LDAP permet aux utilisateurs de s'authentifier directement sur un serveur supportant le protocole LDAP ( Lightweight Directory Access Protocol ).
Pour pouvoir s'authentifier auprès d'un serveur LDAP, il faut que :
Afin de garantir qu'un utilisateur soit existant et que ses données soient bien renseignées, il est fortement conseillé d'importer les utilisateurs grâce à la source LDAP : Collecteur Active Directory ou Collecteur OpenLDAP
Lors de l'authentification, le module utilise le compte LDAP renseigné lors de la configuration du module ( voir plus bas ) pour rechercher si l'utilisateur existe sur le serveur LDAP. Si c'est le cas, Shinken transmet la requête d'authentification au serveur LDAP et c'est celui-ci qui authentifie l'utilisateur.
Le module supporte le protocole LDAP. Il est donc compatible avec :
Le module MODULE-NAME est un module qui peut être activé seulement sur le démon DEMON-TYPE.
MODULE-NAME".Exemple: par défaut, nous livrons un module dont le nom est "MODULE-NAME":
Modifiez le DEMON-TYPE, la liste des module et le MODULE-NAME
define DEMON-TYPE {
[...]
module Module 1, Module 2, Module 3, MODULE-NAME
[...]
} |
Pour prendre en compte le changement de configuration, redémarrer l'Arbiter:
service shinken-arbiter restart |
La configuration du module se trouve par défaut dans le fichier /etc/shinken/modules/MODULE-NAME.cfg
# =========================================================================================================== #
# ---------------------------------- MODULE-NAME ---------------------------------- #
# =========================================================================================================== #
# --- ---
# --- ---
# --- ---
#============================================================================================================ #
define module {
...
=> Mettre le fichier livré par défaut
...
}
|
Il est possible de définir plusieurs instances de module de type MODULE-NAME. Chaque instance devra avoir un nom unique.
| Nom | Type | Unité | Défaut | Commentaire | |
|---|---|---|---|---|---|
| Texte | --- | MODULE-NAME | Nous vous conseillons de choisir un nom en fonction de l'utilisation du module pour que votre configuration soit simple à maintenir. | |
| Texte | --- | MODULE-NAME | Ne peux être modifié. |
... #======== Active Directory connection ========= # ldap_uri: uri to connect to your LDAP server # with the form: # - ldaps://myserver # - ldap://myserver #ldap_uri ldaps://myserver # username: user to connect to the LDAP/LDAPS server # On active directory, this will be the userPrincipalName (the form is user@myserver.com) # On openldap, this will be the DN (the form is cn=user,dc=myserver,dc=com) username user # password: to use to connect to the LDAP/LDAPS server password password # basedn: DN top level to use for query users basedn DC=google,DC=com # Connection mode: # - ad: active directory # - openldap: openldap. If you switch to this mode, you must configure the mapping (see option below.) mode ad ... |
Ces paramètres vous permettront de définir la connexion au serveur LDAP.
| Nom | Type | Unité | Défaut | Commentaire | |
|---|---|---|---|---|---|
| Texte | protocole://adresse | ldaps://myserver | Adresse du serveur LDAP, précédée du protocole utilisé Le protocole peut-être "ldap://" ou "ldaps://" pour les serveurs utilisant le SSL | |
| Texte | --- | user | Nom d'utilisateur utilisé pour se connecter sur le serveur LDAP afin de rechercher les utilisateurs. Cet utilisateur doit pouvoir se connecter et rechercher les utilisateurs qui pourront se connecter à travers ce module Des droits en lecture-seule sont suffisant pour ce module. | |
| Texte | --- | password | Le mot de passe de l'utilisateur précisé ci-dessus | |
| Texte | --- | DC=google,DC=com | Décrit le chemin dans lequel rechercher les utilisateurs. Il ne peut y avoir qu'un seul chemin. Si deux endroits sont requis, il faut utiliser le chemin en commun | |
| Texte | --- | ad | Permet de spécifier si le serveur LDAP est un Active directory ( mode : ad ) ou un serveur OpenLDAP ( mode : openldap ) Seuls les valeurs "ad" et "openldap" sont acceptées pour ce paramètre |
Le module est présenté et paramétré par défaut pour être utilisé avec un Active Directory. Pour utiliser avec un serveur OpenLDAP ou un serveur supportant ce protocole ( Exemple : Oracle DSSE ), il faudra modifier les deux champs suivants :
|
... # File for additional configuration of the module behavior # By default, the module tries to auth a user using its LDAP samaccountname and the matching contact (by contact name). # To change this behavior, put a working mapping file in your shinken-user directory. # You can copy the example at /etc/shinken-user-example/modules/auth-active-directory/mapping.json # NEVER MODIFY OR USE EXAMPLES DIRECTLY as they will be overwritten without notice. # # mapping_file /etc/shinken-user/configuration/modules/auth-active-directory/mapping.json ... |
Le fichier de mapping permet de faire correspondre un attribut LDAP avec une propriété Shinken afin d'identifier un utilisateur.
Il faut copier le fichier "/etc/shinken-user-example/modules/auth-active-directory/mapping.json" dans "/etc/shinken-user/configuration/modules/auth-active-directory/mapping.json" ( créer l’arborescence si besoin ).
Les fichiers présents dans "/etc/shinken-user-example" sont en lecture seule. Il faut rajouter les droits en écriture après la copie dans "/etc/shinken-user". |
| Nom | Type | Unité | Défaut | Commentaire | |
|---|---|---|---|---|---|
| Texte | --- | /etc/shinken-user/configuration/modules/auth-active-directory/mapping.json | Lien vers le fichier de mapping. Ce fichier permet de faire correspondre les propriétés Shinken avec les attributs LDAP pour trouver un utilisateur Le place_holder du formulaire de connexion se trouve également dans ce fichier |
Le fichier de mapping permet de faire correspondre un attribut LDAP avec une propriété Shinken afin d'identifier un utilisateur.
Il faut copier le fichier "/etc/shinken-user-example/modules/auth-active-directory/mapping.json" dans "/etc/shinken-user/configuration/modules/auth-active-directory/mapping.json" ( créer l’arborescence si besoin ).
Les fichiers présents dans "/etc/shinken-user-example" sont en lecture seule. Il faut rajouter les droits en écriture après la copie dans "/etc/shinken-user". |
Voici les paramètres de ce fichier de configuration :
| Nom | Type | Unité | Défaut | Commentaire | |
|---|---|---|---|---|---|
| Texte | --- | samaccountname | L'attribut ldap qui sera utilisé pour faire la correspondance avec Shinken N'importe quel attribut présent sur vos utilisateurs peut être utilisé, du moment qu'ils sont renseignés sur vos utilisateurs Shinken | |
| Texte | --- | contact_name | La propriété Shinken qui sera utilisée pour faire la correspondance avec LDAP N'importe quelle propriété ou donnée peut être utilisé pour identifier vos utilisateurs, du moment qu'un attribut correspondant se trouve sur l'utilisateur LDAP | |
| Texte | --- | Si une valeur est définie dans ce champ, elle sera utilisée dans le formulaire de connexion pour indiquer aux utilisateurs quel identifiant utiliser ( Ex: "Email du contact", voir ci-dessous ) |
Le champ "login_placeholder" permet de configurer le message qui sera affiché sur l'écran de connexion afin de fournir une aide visuelle à l'utilisateur:
|
Voici ci-dessous un tableau récapitulatif des propriété et attribut les plus utilisés pour le fichier de mapping :
| Shinken | Active Directory | Open LDAP |
|---|---|---|
| contact_name | samAccountName | uid |
| display_name | displayName | displayName |
| pager | telephoneNumber | telephoneNumber |
Afin que le module soit utilisable sur l'interface de configuration, il faut simplement déclarer le module sur le module WebUI.
define module {
module_name WebUI
#[ ... ]
modules auth-active-dir, Mongodb, webui-enterprise, sla
#[ ... ]
}
|
Re-démarrer ensuite l'Arbiter pour prendre en compte les modifications.
/etc/init.d/shinken-arbiter restart |
La présence simultanée des modules Cfg_password et auth-active-directory peut provoquer un fonctionnement non anticipé. Comme le module Cfg_password vérifie les mots de passe dans la base Shinken et le module auth-active-directory dans LDAP, si les 2 modules sont chargés, l'utilisateur pourra se connecter avec les 2 mots de passe ( Shinken et LDAP ). Si ce comportement est souhaité, il est possible d'avoir les 2 modules dans la configuration. Les modules sont alors utilisés dans l'ordre définit dans le fichier CFG ( ici d'abord le module auth-active-directory puis le Cfg_password ) :
|
# Note: comments can only be preceded by spaces, they should NOT be after a value
# ==================================================================================
{
#========== ldap_key ============
# Describe which ldap attribute will be used for the login. Case unsensitive.
#
# Possible values include:
# - samaccountname: Login key on windows systems. This is the default on active directory.
# - uid: Login key on openldap systems. This is the default on openldap.
# - mail: The mail address of the user. If used, must be unique.
# - [...]
"ldap_key": "mail",
#========= shinken_key ==========
# Describe which shinken property will be used for the login. The values in the
# ldap attribute and the shinken contact must match for the authentication to be successful.
#
# Possible values include:
# - contact_name: Shinken login key. This is the default.
# - display_name: Shinken display name. If used, must be unique.
# - email: The mail address of the user. If used, must be unique.
# - [...]
"shinken_key": "email",
#====== login_placeholder =======
# Free text field to help users to know which login he or she should use.
"login_placeholder": "Email du contact"
}
|