Guide d'administration de Solaris for ISPs

Chapitre 5 Utilisation des services de répertoire

SolarisTM for ISPsTM utilise SunTM Directory Services pour stocker des informations de composant logiciel et des informations de connexion pour SunTM Internet AdministratorTM et certains services. Ces informations incluent des classes d'objet standard et de nouveaux objets définis supportant les fonctionnalités de Solaris for ISPs.

Ce chapitre présente des informations sur la structure arborescente des informations de Solaris for ISPs, sur la création d'entrées dans l'arborescence, depuis la ligne de commande, et sur les contrôles d'accès requis. Pour plus d'informations sur l'extension de schéma proprement dite, consultez le Chapitre 6.

Sun Directory Services fournit les outils suivants pour utiliser et administrer le répertoire :

Vous trouverez dans les manuels Sun Directory Services, Sun Directory Services 3.1 Administration Guide et Sun Directory Services 3.1 User's Guide, des informations complètes sur le démarrage et l'emploi de ces outils. Ils sont présentés dans le format AnswerBook2 sur le CD-ROM du produit. Les programmes de ligne de commande sont documentés dans des pages de manuel à la section 1 (/opt/SUNWconn/man).

Structure de répertoires Solaris for ISPs

Solaris for ISPs nécessite une structure spécifique dans l'arborescence d'informations de répertoires (DIT), qui est créée pendant l'installation et la configuration. La structure requise est composée de deux contextes de noms, qualifiés d'arborescence OSI (Open Systems Interconnection) et d'arborescence DC (Domain Component). Des parties de ces deux arborescences sont parallèles. Cette structure parallèle simplifie le mappage des noms de domaine d'une requête DNS aux entrées de contenu réelles dans l'arborescence OSI, en passant par l'arborescence DC.

Structure d'arborescence OSI

L'arborescence OSI contient les entrées réelles de Solaris for ISPs, ses services de composant, les administrateurs de ses services et les abonnés de ces services. La structure requise est illustrée dans la Figure 5-1.

Figure 5-1 Arborescence OSI de Solaris for ISPs

Graphic

Dans l'arborescence OSI, l'entrée du domaine sun.com est représentée par l'entrée portant le nom distinctif o=sun,c=us. Cette entrée est qualifiée de domaine racine et représente l'entreprise du client de Solaris for ISPs. Vous spécifiez le nom du domaine racine pendant l'installation des services de répertoire.

Sous le domaine racine, on retrouve quatre entrées organizationalUnit obligatoires :

Les noeuds People, Groups et Services sont requis sous chaque entrée de domaine que vous définissez. Le noeud Administrators existe uniquement sous le domaine racine.

La Figure 5-2 illustre un jeu d'entrées classiques sous chaque unité organisationnelle.

Figure 5-2 Entrées d'arborescence OSI

Graphic

L'entrée organizationalUnit eng est un exemple d'une entrée domain. Elle peut correspondre à un client entreprise de l'ISP ou à quiconque ayant des services d'hébergement de domaine virtuel chez l'ISP. Les domaines doivent avoir deux entrées : une ici dans l'arborescence OSI et une autre dans l'arborescence DC pour le mappage de nom de domaine. Reportez-vous à "Création d'entrées de domaine" pour plus d'informations sur la création de ces deux entrées.

Les domaines, le domaine racine par exemple, nécessitent certaines entrées organizationalUnit. Tel qu'illustré dans la Figure 5-3, les entrées People, Groups et Services sont également requises dans un domaine sous la racine.

Figure 5-3 Structure de domaine dans l'arborescence OSI

Graphic

Lors de la création d'une entrée de domaine dans l'arborescence OSI, vous devez également créer des entrées pour People, Groups et Services. Lors de la configuration de services pour ce domaine, les entrées de service sont effectuées sous l'unité organisationnelle Services. Les informations d'abonné pour ce domaine forment les entrées ispSubscriber sous l'unité organisationnelle People.


Remarque :

Les entrées Administrator sont effectuées sous le domaine racine dans cette version de Solaris for ISPs. Ces entrées sont créées par Sun Internet Administrator lors de leur spécification par l'intermédiaire de l'interface utilisateur graphique.


Structure arborescente DC

L'arborescence DC (composant de domaine) mappe le format de nom de domaine (par exemple sun.com) au nom distinctif de l'entrée correspondante dans l'arborescence OSI. Tel qu'illustré dans la Figure 5-4, la DC est généralement relativement plate et plus simple que l'arborescence OSI.

Figure 5-4 Arborescence DC de Solaris for ISPs

Graphic

Dans la Figure 5-4, l'entrée dc=sun,dc=com correspond à l'entrée o=sun,c=us dans l'arborescence OSI. Le domaine eng est mappé ici à la forme de serveur de nom de domaine (DNS) eng.sun.com.

Pour plus de détails sur la création des deux entrées de domaine, reportez-vous à "Création d'entrées de domaine".

Création d'entrées de répertoire depuis la ligne de commande

Vous trouverez des informations générales sur la création d'entrées de service de répertoire au chapitre 5, "Loading and Maintaining Directory Information," du manuel Sun Directory Services 3.1 Administration Guide. Vous trouverez dans cette section des instructions sur la création des entrées spécifiques requises par Solaris for ISPs.

Pour plus d'informations sur la création d'entrées de répertoire à l'aide de l'outil Deja, reportez-vous à l'aide en ligne de SunTM Internet AdministratorTM.

Création d'entrées de répertoire : Procédure générale

Sun Directory Services possède les utilitaires de ligne de commande suivants pour créer et modifier les entrées de répertoire :

Ces utilitaires de ligne de commande de service de répertoire nécessitent un accès racine. Ils sont entièrement documentés dans les pages de manuel de référence (section 1).

ldapadd et ldapmodify peuvent prendre une entrée de la ligne de commande ou d'un fichier spécifié. Les informations pour une entrée pouvant être relativement longues et complexes, les sections qui suivent décrivent la forme nécessitant un fichier texte.

Dans chaque cas, la création d'une entrée (ou de plusieurs entrées) implique les interventions suivantes :

  1. Ecrire un fichier spécifiant l'entrée ou les entrées à effectuer dans le répertoire. Le format de ce fichier est spécifié dans la page de manuel de référence ldif(4).

  2. Obtenir un accès racine et créer l'entrée à l'aide de ldapadd, spécifiant le fichier contenant les informations de l'entrée.

Dans chaque cas, la forme de la commande ldapadd doit être la suivante :

# ldapadd -D "BindDN" -w password -f file

BindDN est le nom distinctif (DN) de la liaison au répertoire avec un accès en écriture à cette partie de l'arborescence de répertoire, et password le mot de passe de la liaison. Remplacez l'option file par le nom du fichier ldif que vous avez créé.

Structure d'un fichier ldif(4)

Pour chaque entrée que vous ajoutez dans la ligne de commande, vous créez un fichier de format ldif pour contenir les informations sur l'entrée. Ces fichiers sont de simples fichiers texte avec une ou plusieurs entrées de répertoire, chacune étant séparée par une ligne vierge. Chaque entrée a la structure de l'exemple suivant.


Remarque :

Seuls les attributs obligatoires sont indiqués dans l'exemple. La plupart des classes d'objet ont plusieurs attributs facultatifs pouvant être définis en fonction de votre utilisation particulière de l'entrée.


dn: ou=wcgate1,ou=eng,o=sun,c=US 
ou: wcgate1 
associateddomain: wcgate1.eng.sun.com  
objectclass: organizationalUnit 
objectclass: domainRelatedObject

dn

Indique le nom distinctif de l'entrée créée.

ou

Est l'attribut de nom de l'entrée créée. Les attributs de nom commun incluent commonName, organizationalUnit (ou) et domainComponent ( dc).

associatedDomain

Contient le nom de domaine (en note point) de l'entrée correspondante dans l'arborescence DC. Pour plus d'informations sur l'interaction entre l'arborescence OSI et l'arborescence DC, reportez-vous à "Structure de répertoires Solaris for ISPs". Pour plus d'informations sur la création des deux entrées de référence croisée d'un domaine, consultez "Création d'entrées de domaine".

Il peut y avoir plusieurs paires attribut:valeur dans cette position, une par ligne.

objectClass

Est la classe d'objet (type) de l'entrée. Il peut y avoir plusieurs entrées objectClass ; cet exemple en illustre deux.

Pour des informations plus détaillées sur les classes d'objet et les attributs disponibles, reportez-vous au Chapitre 6 de ce guide et au chapitre 8, "Configuring the Directory Schema" du manuel Sun Directory Services 3.1 Administration Guide.

Création d'entrées de domaine

Pour créer un domaine dans le répertoire, vous devez créer deux entrées de domaine parallèles, l'une dans l'arborescence OSI et l'autre dans l'arborescence DC, puis créer les entrées organizationalUnit sous l'entrée de domaine dans l'arborescence OSI.

Pour créer le domaine wcgate1 sous eng.sun.com, procédez comme suit :

  1. Editez un fichier texte (par exemple, domain.ldif) et entrez les données de l'entrée d'arborescence OSI :

    dn: ou=wcgate1,ou=eng,o=sun,c=US 
    ou: wcgate1 
    associateddomain: wcgate1.eng.sun.com 
    objectclass: organizationalUnit 
    objectclass: domainRelatedObject 

    Sachez que l'attribut associatedDomain de l'entrée contient le nom de l'entrée d'arborescence DC en note point (style DNS).

  2. Ajoutez à domain.ldif les données de l'entrée d'arborescence DC :

    dn: dc=wcgate1,dc=eng,dc=sun,dc=com 
    dc: wcgate1
    associatedname: ou=wcgate1,ou=eng,o=sun,c=US 
    description: DNS-to-DN Mapping for wcgate1.eng.sun.com 
    labeleduri: ldap:///ou=wcgate1,ou=eng,o=sun,c=US??sub 
    objectclass: domain 
    objectclass: labeledURIObject

    Sachez que l'attribut associatedName de l'entrée contient le nom distinctif de l'entrée d'arborescence OSI. L'attribut labeledURI contient les mêmes informations (telles que spécifiées dans RFC 2255).

  3. Ajoutez à domain.ldif les données de l'entrée d'unité organisationnelle Services requises :

    dn: ou=Services,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: Services 
    objectclass: organizationalUnit
  4. Ajoutez à domain.ldif les données de l'entrée d'unité organisationnelle People requises :

    dn: ou=People,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: People 
    objectclass: organizationalUnit 
  5. Ajoutez à domain.ldif les données de l'entrée d'unité organisationnelle Groups requises :

    dn: ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: Groups 
    objectclass: organizationalUnit
  6. Enregistrez et fermez domain.ldif.

  7. Obtenez un accès racine et ajoutez les entrées au répertoire avec la commande suivante, en remplaçant le DN et le mot de passe de liaison par les vôtres :

    # ldapadd -D "cn=admin,o=sun,c=US" -w password -f domain.ldif

Lorsque votre ldapadd est terminé, le répertoire a l'aspect présenté dans la Figure 5-5.

Figure 5-5 Arborescence de répertoire avec un domaine ajouté

Graphic

Création d'entrées d'abonné

Il existe plusieurs variétés d'abonnés de Solaris for ISPs :

Dans les sections qui suivent, des instructions sont fournies pour construire l'entrée d'abonné complexe en créant l'entrée simple et en procédant par ajouts dans celle-ci.

Création d'une entrée d'abonné de base

Avant de créer des entrées d'abonné, les entrées de domaine et d'unité organisationnelle People doivent exister. Une fois que vous avez créé ces entrées, vous pouvez éditer un fichier texte (par exemple people.ldif) et entrer les données pour l'abonné. L'entrée d'abonné de base a la classe d'objet unique ispSubscriber et quelques attributs obligatoires. Le fichier pour un abonné de base a l'aspect suivant :

dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US 
commonname: Jane Doe (jldoe) 
sn: Doe
uid: jldoe 
userpassword: hidden 
objectclass: ispSubscriber 

dn

Est le nom distinctif de l'entrée d'abonné.

commonName

Est l'attribut de nom d'une entrée d'abonné (classe d'objet ispSubscriber). Pour les abonnés et les administrateurs Solaris for ISPs, la valeur de l'attribut commonName prend la forme Prénom Nom (userid).

sn

Est le nom de l'abonné.

uid

Est le nom de connexion de l'abonné.

userPassword

Est le mot de passe, limité à huit caractères si vous partagez des informations de mot de passe avec des comptes UNIX. Cette valeur est générée avec la méthode de cryptage que vous avez définie dans la console d'administration des services de répertoire.

objectClass: ispSubscriber

Est le type de classe d'objet de l'entrée d'abonné.

Vous pouvez créer n'importe quel nombre d'entrées d'abonné en ajoutant des blocs de données avec différentes valeurs d'attribut au fichier. Une fois cette opération terminée, enregistrez et fermez people.ldif. Obtenez un accès racine et ajoutez les entrées de l'abonné dans le répertoire avec la commande suivante, en remplaçant le lien DN et le mot de passe par les vôtres :

# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif

Ajout d'informations d'hôte virtuel FTP et Web

Les informations requises pour l'hébergement virtuel spécialement configuré avec SunTM Internet FTP ServerTM et SunTM WebServerTM (SWS) ajoutent uniquement trois attributs au fichier de données :

gidnumber: 60001 
uidnumber: 60001 
ispcontentdirectory: jldoe

gidNumber

Est l'ID de groupe UNIX spécifié pour cet utilisateur dans le domaine à hôte virtuel pour les services FTP et Web.

uidNumber

Est l'ID utilisateur UNIX spécifié pour cet utilisateur dans le domaine hébergé virtuellement pour les services FTP et Web.

ispContentDirectory

Est l'emplacement (par rapport à la racine de document du domaine associé) où se trouve le fichier de contenu de cet abonné.


Remarque :

La définition des valeurs des attributs uidNumber et gidNumber impliquent que les comptes UNIX existants soient correctement configurés pour partager l'accès au domaine FTP virtuel. Reportez-vous à l'aide en ligne de Sun Internet FTP Server pour obtenir des informations sur la définition d'une configuration d'hôte virtuel.


Vous pouvez créer n'importe quel nombre d'entrées d'abonné en ajoutant des blocs de données au fichier. Une fois cette opération terminée, enregistrez et fermez people.ldif. Obtenez un accès racine et ajoutez les entrées de l'abonné dans le répertoire avec la commande suivante, en remplaçant le lien DN et le mot de passe par les vôtres :

# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif

Si vous avez déjà créé ces entrées, vous pouvez effectuer une opération ldapmodify. Localisez la page de manuel de ldapmodify(1) et suivez ces instructions.

Ajout d'informations utilisateur distant

Une entrée pour un abonné ayant accès aux services ISP par l'intermédiaire d'un serveur RADIUS doit supporter une classe d'objet supplémentaire ( remoteUser) et a plusieurs attributs ajoutés aux informations de l'entrée.


Remarque :

La configuration Solaris for ISPs par défaut désigne le domaine racine comme base de recherche pour les entrées d'abonné RADIUS. Si votre configuration est différente, utilisez la console d'administration des services de répertoire pour configurer RADIUS et entrez les valeurs adaptées à votre base de recherche.


Les lignes supplémentaires dans le fichier ldif sont les suivantes :

objectclass: remoteUser
authsuffixname: @ispxpress
grpcheckinfo: authSuffixName
grpcheckinfo: userPassword
authserviceprotocol: Framed-User
framedrouting: None
framedprotocol: PPP
grpreplyinfo: authServiceProtocol
grpreplyinfo: framedProtocol
grpreplyinfo: framedRouting 

objectClass: remoteUser

Est une classe d'objet obligatoire pour l'abonné accédant aux services à l'aide d'un serveur RADIUS.

authsuffixname: @ispxpress

Est un suffixe ajouté au nom d'utilisateur de l'abonné pour permettre au serveur RADIUS d'établir une distinction entre les entrées portant le même uid dans différents domaines. Entrez le suffixe approprié pour l'entrée d'utilisateur spécifique.

grpcheckinfo: authSuffixName

Indique que le serveur RADIUS doit vérifier la valeur d'attribut authSuffixName avant de sélectionner l'entrée pour authentification.

grpcheckinfo: userPassword

Indique que le serveur RADIUS doit vérifier la valeur d'attribut userPassword avant de sélectionner l'entrée à authentifier.

authserviceprotocol: Framed-User

Si vous utilisez la configuration RADIUS par défaut, entrez cet attribut tel qu'indiqué. La valeur correcte est déterminée par la configuration de votre serveur d'accès réseau.

framedrouting: None

Si vous utilisez la configuration RADIUS par défaut, entrez cet attribut tel quel. La valeur correcte est déterminée par la configuration de votre serveur d'accès réseau.

framedprotocol: PPP

Si vous utilisez la configuration RADIUS par défaut, entrez cet attribut tel qu'indiqué. La valeur correcte est déterminée par la configuration de votre serveur d'accès réseau.

grpreplyinfo: authServiceProtocol

Demande au serveur RADIUS d'inclure la valeur de l'attribut authServiceProtocol dans son message de réponse.

grpreplyinfo: framedProtocol

Demande au serveur RADIUS d'inclure la valeur de l'attribut framedProtocol dans son message de réponse.

grpreplyinfo: framedRouting

Demande au serveur RADIUS d'inclure la valeur de l'attribut framedRouting dans son message de réponse.

Vous pouvez créer n'importe quel nombre d'entrées d'abonné en ajoutant des blocs de données au fichier. Une fois cette opération terminée, enregistrez et fermez people.ldif. Obtenez un accès racine et ajoutez les entrées de l'abonné dans le répertoire avec la commande suivante, remplaçant le DN de liaison et le mot de passe par les vôtres :

# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif

Si vous avez déjà créé ces entrées, vous pouvez effectuer une opération ldapmodify. Localisez la pagede manuel de ldapmodify(1) et suivez ces instructions.

Le fichier ldif terminé

Le fichier ldif terminé pour un utilisateur complexe a l'aspect suivant :

dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US 
commonname: Jane Doe (jldoe) 
sn: Doe
uid: jldoe 
userpassword: hidden 
gidnumber: 60001 
uidnumber: 60001 
objectclass: ispSubscriber 
objectclass: remoteUser
ispcontentdirectory: /home/users/jldoe
authsuffixname: @ispxpress
grpcheckinfo: authSuffixName
grpcheckinfo: userPassword
authserviceprotocol: Framed-User
framedrouting: None
framedprotocol: PPP
grpreplyinfo: authServiceProtocol
grpreplyinfo: framedProtocol
grpreplyinfo: framedRouting 

Création d'entrées de groupe

Avant de pouvoir créer des entrées de groupe, un certain nombre d'entrées doit déjà exister :

Une fois que vous avez créé ces entrées, vous pouvez démarrer un fichier texte (par exemple, groups.ldif) et entrer les entrées pour le groupe. Un jeu de données typique a l'aspect suivant :

dn: cn=isp-gp1,ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US 
cn: isp-grp1
objectclass: groupOfNames
member: cn=Ed Anchor (anchor),ou=People,ou=wcgate1,ou=eng,o=sun,c=US
member: cn=April Shower (showers),ou=People,ou=wcgate1,ou=eng,o=sun,c=US
member: cn=Chili Jones (relleno),ou=People,ou=wcgate1,ou=eng,o=sun,c=US

dn

Est le nom distinctif du groupe à créer.

cn

Est le nom distinctif relatif de l'entrée de groupe.

objectClass

La classe d'objet groupOfNames distingue ce type d'entrée.

member

Chaque attribut member prend comme valeur le nom distinctif d'une entrée d'abonné existante.

Vous pouvez créer n'importe quel nombre d'entrées de groupe en ajoutant des données au fichier. Une fois qu'il est terminé, enregistrez et fermez groups.ldif. Obtenez un accès racine et ajoutez les groupes au répertoire avec la commande suivante, en remplaçant le DN de liaison et le mot de passe par les vôtres :

# ldapadd -D "cn=admin,o=sun,c=US" -w password -f groups.ldif

Contrôle d'accès Solaris for ISPs

Solaris for ISPs définit un contrôle d'accès pour les services de répertoire, pour garantir un accès approprié par les parties du logiciel qui le nécessitent, tout en assurant la sécurité et en empêchant l'accès par d'autres. Le principe général de ces contrôles d'accès veut que toutes les entités ont des accès en lecture tandis que l'accès en écriture est restreint. Il est très important que vous ne changiez pas les contrôles d'accès existants, car vous pourriez introduire des risques concernant la sécurité ou provoquer le blocage de Solaris for ISPs.

Souvenez-vous que les règles de contrôle d'accès sont tributaires de l'ordre d'utilisation. Lorsque Sun Directory Services procède à des vérification d'accès, la première règle qui s'applique à la requête est employée. Toutes les règles suivantes sont ignorées. Par conséquent, ne changez pas l'ordre des règles dans le fichier. Lors de la création d'une nouvelle règle, veillez à ce qu'elle ne s'applique pas accidentellement à des informations de Solaris for ISPs existantes et annule certaines règles de contrôle d'accès déjà mises en oeuvre.


Remarque :

Le contrôle d'accès est désactivé si vous effectuez une liaison au répertoire comme administrateur.


Généralement, les informations spécifiques de Solaris for ISPs sont stockées dans des entrées prenant en charge des classes d'objet définies dans l'extension de schéma Solaris for ISPs. Chacune de ces classes est nommée en commençant par la chaîne "isp." Toute règle dans le fichier de configuration d'accès qui contient une telle classe d'objet (ou attribut) est probablement une règle Solaris for ISPs et, en tant que telle, est soumise aux modifications. Les règles de contrôle d'accès sont définies dans /etc/opt/SUNWconn/ldap/current/dsserv.acl.conf.

Pour terminer les informations sur les contrôles d'accès Sun Directory Services, reportez-vous au chapitre 1, "Introduction to Directory Concepts," et au chapitre 4, "Configuring a Directory Server," du manuel Sun Directory Services 3.1 Administration Guide.

Les sections qui suivent décrivent le comportement général assuré par les contrôles d'accès Solaris for ISPs. La phrase "a accès" indique qu'une liaison au répertoire avec le DN et le mot de passe de cette entrée donnera la forme d'accès indiquée.

Règles d'activation des fonctionnalités de Sun Internet Administrator

Sun Internet Administrator a besoin des types d'accès suivants pour effectuer son travail :

Règles activant les fonctionnalités de service

Les divers services Solaris for ISPs doivent enregistrer et accéder à des informations de configuration stockées sous leurs entrées de service (celles situées sous le noeud Services dans les sous-domaines et les domaines virtuels). Par conséquent, chacun a l'accès et les informations qu'il doit écrire pour créer et modifier des entrées dans cette partie du DIT, notamment sa propre entrée de service.

Règles d'activation de l'accès utilisateur approprié

Les utilisateurs (abonnés et administrateurs) ont un accès en écriture à leur propre attribut password, mais ne peuvent pas changer d'autres parties de leur entrée. Cependant, n'importe quel administrateur avec un accès de gestion à Sun Internet Administrator a un accès global et peut changer n'importe quoi.