nwBindry : Services de liaison (émulation 2.x/3.x/(4.x))
La liaison (Bindery) est une base de données à usage spécifique dans laquelle NetWare conserve des informations sur les ressources et les utilisateurs du réseau. Comme les fonctions de liaison (Bindery) sont fréquemment utilisées par d'autres fonctions, ces services constituent le coeur de la plupart des applications NetWare. Chaque serveur possède sa propre liaison et un ensemble différent d'objets associés. La de liaison (Bindery) est entreposée dans 2 ou 3 fichiers (selon la version du système d'exploitation Netware du serveur) sur le volume SYS: du serveur de fichiers. Notez que les serveurs Netware 4.x ont la capacité d'émuler la liaison, mais ne disposent pas de fichiers de liaison.
La liaison se compose d'une liste de ressources système (appelées objets) telles que les utilisateurs, les groupes d'utilisateurs et les files d'attente. En d'autres termes : chaque «objet» de liaison représente une «chose» unique (utilisateur, groupe, serveur de fichiers publicitaires,...) que le serveur connaît. Chaque objet peut être identifié de manière unique par son numéro d'identification d'objet associé ou par la combinaison de son nom d'objet et de son type d'objet. Le type d'objet est un numéro associé à un certain type d'objets. (par exemple, le type d'objet des objets utilisateur est 1). Zéro ou plusieurs propriétés peuvent être associées à un objet. Les propriétés contiennent des informations supplémentaires sur l'objet associé.
Dans le pseudo-code Pascal, la liaison peut être définie comme :
Les services de liaison s'occupent de la création et de la suppression des objets et des propriétés associées, ainsi que des modifications de ces derniers. Ils vous permettent également de rechercher certains objets dans la liaison.
Dans le pseudo-code ci-dessus, rien n'est dit sur les fonctionnalités de sécurité disponibles dans la liaison. Plusieurs niveaux de sécurité sont disponibles au niveau des objets et/ou des propriétés individuels. Pour illustrer cette fonctionnalité : la propriété de mot de passe d'un objet ne peut même pas être lue par le superviseur et la propriété appelée «adresse réseau» d'un serveur peut être lue par des objets n'étant même pas connectés. Pour chaque propriété attachée à un objet, cinq niveaux de sécurité sont disponibles pour la lecture et cinq autres pour l'écriture. Il s'agit de «tout utilisateur connecté», «utilisateur» et «superviseur». (Pour les propriétés PASSWORD et OLD_PASSWORD, il existe un cinquième niveau, «serveur»). La sécurité d'un objet (ou d'une propriété) est définie lors de sa création et ne peut être modifiée que par un autre objet disposant des droits suffisants pour écrire sur l'objet. Par exemple, pour la propriété IDENTIFICATION [nom complet d'un objet], la sécurité par défaut est que tout utilisateur connecté peut lire la valeur (obtenir le nom de l'utilisateur), mais seul le superviseur (ou le responsable) peut modifier le nom.
Les objets et les propriétés peuvent être définis comme étant dynamiques ou statiques. Les objets/propriétés statiques sont entreposés sur le disque et continueront d'exister dans la liaison si le serveur est redémarré. Les objets statiques sont des éléments tels que les utilisateurs et les groupes. Ils existent dans la liaison jusqu'à ce que quelque chose les supprime. Les objets dynamiques sont des éléments tels que les serveurs de fichiers n'étant dans la liaison que pendant un certain temps. Lorsque le serveur est en panne, ils sont supprimés. Ceci est utilisé pour des éléments tels que les serveurs de fichiers publicitaires. Chaque serveur de fichiers publicitaires sur le réseau est un objet de liaison. (SLIST, par exemple, est juste une collection d'appels d'API de liaison pour lire tous les objets de type « serveur de fichiers » et les afficher). Les objets/propriétés dynamiques seront perdus lorsque le serveur est en panne. Les serveurs d'impression et de fichiers seront installés dans la liaison en tant qu'objets dynamiques par le processus serveur au démarrage.
Les propriétés existent en deux versions : Set Property et Item Property. La structure d'une propriété d'élément n'est pas prédéfinie, c'est juste une collection de blocs de données de 128 octets. La structure d'une propriété Set est prédéfinie, les blocs de données de 128 octets contiennent des identificateurs d'objet. Un exemple est la propriété d'ensemble GROUPS_I'M_IN associée à un objet utilisateur. Cette propriété d'ensemble contient les identifiants d'objet de tous les groupes dont l'utilisateur est membre.
La liaison contient une multitude d'objets et de propriétés standard. Laissez-moi vous donner quelques exemples, juste pour vous donner une idée : tous les serveurs connus sur le réseau sont représentés par des objets dynamiques dans la liaison. Ces objets, de type OT_FILE_SERVER, ont toujours une propriété appelée SERVER_ADDRESS contenant l'adresse réseau complète du serveur. Chaque objet autorisé à se connecter possède un certain nombre de propriétés contenant les paramètres pouvant être modifiés avec SYSCON. (par exemple, le nom complet, les restrictions de temps de connexion, la comptabilité, les restrictions de taille de volume).
Quelques propriétés standard sont présentées ici car elles sont étroitement liées aux objets de la liaison et/ou à la liaison elle-même. Une propriété appelée PASSWORD est associée à tous les objets autorisés à se connecter. Cette propriété ne peut être lue que par Netware lui-même (c'est-à-dire un NLM). Vous devrez utiliser les appels ChangeBinderyObjectPassword et VerifyBinderyObject Password pour modifier/vérifier la valeur de cette propriété.
La plupart des objets/propriétés ne peuvent pas être modifiés (ni même lus) par des objets non superviseurs. Il existe 3 options possibles pour donner à d'autres objets la possibilité de gérer les objets/propriétés de la liaison :
- Rendre l'équivalent superviseur du gestionnaire d'objets prévu équivalent. Cette équivalence n'est pas limitée à la liaison. Un utilisateur équivalent superviseur est véritablement équivalent au superviseur. Cela présente de sérieux inconvénients du point de vue de la sécurité du réseau. Exemple de l'appel nécessaire pour effectuer l'opération ci-dessus (la propriété SECURITY_EQUALS est supposée exister) :
- AddBinderyObjectToSet(NewObjManagerName,OT_USER,'SECURITY_EQUALS','SUPERVISOR',OT_USER);
- Ajoutez l'objectID du gestionnaire d'objets prévu à la propriété MANAGERS de l'objet superviseur. De cette façon, l'objet cible reçoit l'autorisation de gérer la liaison. Le gestionnaire d'objets devient l'équivalent du superviseur - en ce qui concerne la liaison -. Exemple de l'appel nécessaire pour effectuer l'opération ci-dessus (la propriété MANAGERS est supposée exister) :
- AddBinderyObjectToSet('SUPERVISOR',OT_USER,'MANAGERS',NewObjManagerName,OT_USER);
- Ajoutez l'objectID du gestionnaire d'objets prévu à la propriété OBJ_SUPERVISORS de l'objet à superviser. De cette façon, le gestionnaire d'objets est autorisé à gérer uniquement cet objet de liaison. Exemple d'appel nécessaire pour effectuer l'opération ci-dessus (la propriété OBJ_SUPERVISORS est supposée exister) :
- AddBinderyObjectToSet(ObjectToBeManagedName,ObjType,'OBJ_SUPERVISORS',NewObjManagerName,OT_USER);
Remarque : différences entre les liaisons des différentes versions de NetWare.
3.11 vs 3.12
Les liaisons sur NetWare v3.11 et v3.12 sont essentiellement identiques. Cependant, contrairement à NetWare v3.11, le système d'exploitation v3.12 ne vous permettra pas de modifier les fonctionnalités de certaines propriétés de liaison standard.
Par exemple, si vous essayez de modifier la propriété utilisateur «SECURITY_EQUALS» de la sécurité d'accès «Lecture d'objet, écriture du superviseur» à «Lecture d'objet, écriture d'objet», NetWare v3.12 renvoie le message d'erreur suivant :
$F1 (241): Invalid Bindery Security |
et ne termine pas l'opération.
3.x vs 4.x
L'émulation de liaison NetWare v4.01 est encore plus restrictive dans cette situation. NetWare v4.01 ne vous permet pas de :
- Modifier les propriétés de liaison standard existantes pour qu'elles aient des fonctionnalités non standard
- Créer certaines propriétés de liaison standard
Par exemple, les tentatives de création des propriétés HOME_DIRECTORY ou MISC_LOGIN_INFO aboutissent à un état d'achèvement réussi, mais les propriétés ne sont pas créées et ne peuvent pas être utilisées dans les appels de liaison. Lorsque vous essayez d'ajouter des valeurs à ces propriétés, NetWare v4.01 renvoie l'erreur $FF (255) ou $FB (251).