Annexe O. Procédures d'authentification des administrateurs

Page d'accueil  Précédent  Suivant

 

Vous trouverez des informations de base relatives à l'authentification des administrateurs sur Serveur Enterprise dans le paragraphe Authentification des administrateurs.

 

Authentification en cas d'utilisation d'Active Directory

Seuls la disponibilité et l'ordre dans la liste des authentificateurs doivent être configurés : balises <enabled/> et <order/> dans auth-ads.xml.

Principe de fonctionnement :

1.L'administrateur définit le nom d'utilisateur et le mot de passe à l'un des formats suivants :

username,

domain\username,

username@domain,

LDAP DN de l'utilisateur.

2.Le serveur s'authentifie sur le contrôleur de domaine par défaut avec ce nom d'utilisateur et ce mot de passe (ou sur un contrôleur de domaine pour le domaine spécifié dans le nom d'utilisateur).

3.En cas d'authentification échouée, le mécanisme d'authentification suivant sera essayé.

4.Puis LDAP DN de l'utilisateur enregistré sera déterminé.

5.L'attribut DrWeb_Admin est lu depuis l'objet ayant le DN déterminé. Si l'attribut prend la valeur FALSE, la tentative est classée comme échouée et le mécanisme d'authentification suivant sera appliqué.

6.L'attribut DrWeb_AdminReadOnly est lu. Si l'attribut prend la valeur TRUE, l'administrateur dispose des droits en lecture seule.

7.L'attribut DrWeb_AdminGroupOnly est lu. Si l'attribut prend la valeur TRUE, l'administrateur dispose des droits lui permettant de gérer uniquement les certains groupes.

8.L'attribut DrWeb_AdminGroup est lu. Cet attribut doit contenir une liste des groupes à gérer par l'administrateur spécifié.

9.Si lors de cette étape, certains attributs ne sont pas déterminés, ils seront recherchés dans les groupes dont l'utilisateur fait partie. Les groupes parentaux de chaque groupe seront vérifiés (stratégie de recherche - en profondeur).

 

En cas de n'importe quel erreur, le mécanisme d'authentification suivant sera appliqué.

 

L'utilitaire drwschema-modify.exe (inclus dans le package d'installation du Serveur) crée une nouvelle classe d'objets dans Active Directory et décrit les nouveaux attributs pour cette classe.

Dans l'espace Enterprise, les attributs ont les OID suivants :

#define DrWeb_enterprise_OID      "1.3.6.1.4.1"                           // iso.org.dod.internet.private.enterprise
#define DrWeb_DrWeb_OID           DrWeb_enterprise_OID      ".29690"     // DrWeb
#define DrWeb_EnterpriseSuite_OID DrWeb_DrWeb_OID           ".1"         // EnterpriseSuite
#define DrWeb_Alerts_OID          DrWeb_EnterpriseSuite_OID ".1"         // Alerts
#define DrWeb_Vars_OID            DrWeb_EnterpriseSuite_OID ".2"         // Vars
#define DrWeb_AdminAttrs_OID      DrWeb_EnterpriseSuite_OID ".3"         // AdminAttrs
 
// 1.3.6.1.4.1.29690.1.3.1 (AKA iso.org.dod.internet.private.enterprise.DrWeb.EnterpriseSuite.AdminAttrs.Admin)
 
#define DrWeb_Admin_OID           DrWeb_AdminAttrs_OID      ".1"         // R/W admin
#define DrWeb_AdminReadOnly_OID   DrWeb_AdminAttrs_OID      ".2"         // R/O admin
#define DrWeb_AdminGroupOnly_OID  DrWeb_AdminAttrs_OID      ".3"         // Group admin
#define DrWeb_AdminGroup_OID      DrWeb_AdminAttrs_OID      ".4"         // Admin's group
#define DrWeb_Admin_AttrName             "DrWebAdmin"
#define DrWeb_AdminReadOnly_AttrName     "DrWebAdminReadOnly"
#define DrWeb_AdminGroupOnly_AttrName    "DrWebAdminGroupOnly"
#define DrWeb_AdminGroup_AttrName        "DrWebAdminGroup"

L'édition des propriétés des utilisateurs d'Active Directory se fait de manière manuelle sur le serveur d'Active Directory (voir Authentification des administrateurs).

Algorithme d'analyse des attributs lors de l'authentification :

1.Les attributs de l'utilisateur sont lus.

2.Si l'attribut DrWebAdmin prend la valeur TRUE :

2.1. S'il y a des attributs manquants et que l'attribut DrWebInheritPermissions prend la valeur TRUE, les attributs manquants seront lus depuis les groupes. La procédure de recherche dans les groupes est terminée dès que tous les attributs sont spécifiés. Ainsi, plus tôt les attributs sont lus, plus haute est leur priorité. L'accès de l'administrateur est autorisé.

2.2. S'il y a des attributs manquants et que l'attribut DrWebInheritPermissions prend la valeur FALSE (ou non déterminé), l'accès de l'administrateur est autorisé.

2.3. Si tous les attributs sont spécifiés, l'accès de l'administrateur est autorisé.

3.Si l'attribut DrWebAdmin prend la valeur FALSE, l'accès de l'administrateur est interdit.

4.Si l'attribut DrWebAdmin n'est pas spécifié :

4.1.Si l'attribut DrWebInheritPermissions prend la valeur TRUE, les attributs sont lus depuis les groupes. Puis on procède comme à l'étape 2.

4.2.Si l'attribut DrWebInheritPermissions prend la valeur FALSE (ou non spécifié), on procède comme à l'étape 3.

Authentification en cas d'utilisation de LDAP

Les paramètres sont écrits dans le fichier de configuration auth-ldap.xml.

Les balises principales du fichier de configuration :

<enabled/> et <order/> - comme dans le cas Active Directory.

<server/> spécifie l'adresse du serveur LDAP.

<user-dn/> détermine les règles de transformation des noms vers DN à l'aide des masque de type DOS.

La balise <user-dn/> permet d'utiliser les caractères de substitution :

* remplace une séquence de n’importe quels caractères sauf . , = @ \ et des espaces ;

# remplace une séquence de n’importe quels caractères.

<user-dn-expr/> détermine les règles de transformation des noms vers DN à l'aide des expressions régulières.

Pour l'exemple, la même règle dans deux variantes :
<user-dn user="*@example.com" dn="CN=\1,DC=example,DC=com"/>
<user-dn-expr user="(.*)@example.com" dn="CN=\1,DC=example,DC=com"/>

\1 .. \9 déterminent la place de substitution dans le template des valeurs *, # ou  des expressions entre parenthèses.

Selon ce principe, si le nom d'utilisateur est spécifié au format login@example.com, après la transformation, le DN a le format suivant : "CN=login,DC=example,DC=com".

<user-dn-extension-enabled/> autorise l'exécution du script Lua ldap-user-dn-translate.ds (depuis le dossier extensions) pour transformer le nom d'utilisateur vers DN. Ce script est exécuté après avoir essayé toutes les règles user-dn, user-dn-expr et si aucune règle correspondante n'est trouvée. Le script a un seul paramètre - le nom d'utilisateur entré. Le script retourne la ligne contenant DN, sinon il retoure la ligne vide. Dans le cas, où aucune règle ne correspond et que le script n'est pas autorisé ou il n'a rien retourné, le nom d'utilisateur entré sera utilisé tel qu'il est.

Les attributs de l'objet LDAP pour DN reçu suit à la transformation, leurs valeurs possibles peuvent être modifiées à l'aide des balises (les valeurs par défaut sont décrites):

<!-- DrWebAdmin attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.1) -->
<admin-attribute-name value="DrWebAdmin" true-value="^TRUE$" false-value="^FALSE$"/>
 
<!-- DrWebAdminGroupOnly attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.2) -->
<readonly-admin-attribute-name value="DrWebAdminReadOnly" true-value="^TRUE$" false-value="^FALSE$"/>
 
<!-- DrWebAdminGroupOnly attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.3) -->
<grouponly-admin-attribute-name value="DrWebAdminGroupOnly" true-value="^TRUE$" false-value="^FALSE$"/>
 
<!-- DrWebAdminGroup attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.4) -->
<groups-admin-attribute-name value="DrWebAdminGroup"/>

En tant que les valeurs de paramètres true-value/false-value des expressions régulières sont spécifiées.

S'il reste des valeurs des attributs de l'administrateur non déterminées et que dans le fichier de configuration, la balise <group-reference-attribute-name value="memberOf"/> est spécifiée, la valeur de l'attribut memberOf sera comprise comme une liste de DN des groupes dont l'administrateur fait partie. Dans ce cas, la recherche des attributs nécessaires sera effectuée par groupes tout comme dans le cas avec l'utilisation d'Active Directory.