Passa al contenuto principale

3. Informazioni amministrative e operative della directory

Questa sezione tratta alcuni aspetti del modello X.500 delle informazioni amministrative e operative della Directory [X.501]. Le implementazioni LDAP POSSONO (MAY) supportarne altri aspetti.

3.1. Sottoalberi​

Secondo [X.501]:

  Un sottoalbero (subtree) è una raccolta di voci oggetto e alias situate ai vertici di un albero. Non contiene sottovoci. Il prefisso sub di subtree sottolinea che il vertice di base (o radice) è normalmente subordinato alla radice del DIT.

Un sottoalbero inizia da un vertice e si estende fino a un limite inferiore identificabile, eventualmente fino alle foglie. È sempre definito entro un contesto che ne delimita implicitamente l’estensione. Per esempio, il vertice e i limiti inferiori di un sottoalbero che definisce un’area replicata sono delimitati da un contesto di denominazione.

3.2. Sottovoci​

Una sottovoce è «un tipo speciale di voce, noto alla Directory, usato per contenere informazioni associate a un sottoalbero o a un suo affinamento» [X.501]. Le sottovoci conservano informazioni per gli scopi amministrativi e operativi definiti in [X.501]. L’uso in LDAP è descritto in [RFC3672].

Il termine «(sub)entry» indica che i server che implementano i modelli X.500(93) devono usare una sottovoce conformemente a X.500(93), come descritto in [RFC3672], mentre gli altri server devono imitarla usando una voce oggetto della classe ausiliaria appropriata normalmente associata alla sottovoce (per esempio 'subschema' per le sottovoci di sottoschema). L’RDN di tale voce DEVE (SHALL) essere formato da un valore dell’attributo 'cn' (commonName) [RFC4519], poiché tutte le sottovoci sono denominate con 'cn'.

3.3. Attributo 'objectClass'​

Ogni voce nel DIT possiede un attributo 'objectClass'.

  ( 2.5.4.0 NAME 'objectClass'
EQUALITY objectIdentifierMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )

La regola 'objectIdentifierMatch' e la sintassi OBJECT IDENTIFIER (1.3.6.1.4.1.1466.115.121.1.38) sono definite in [RFC4517].

'objectClass' specifica le classi di oggetti di una voce, usate tra l’altro con lo schema di controllo per determinarne gli attributi consentiti. I client possono modificarne i valori, ma non rimuovere l’attributo.

I server che seguono i modelli X.500(93) DEVONO (SHALL) limitare le modifiche per impedire che cambi la classe strutturale fondamentale della voce: non si può trasformare una 'person' in un 'country'.

Quando si crea una voce o si aggiunge un valore 'objectClass', tutte le superclassi mancanti delle classi indicate DEVONO (SHALL) essere aggiunte implicitamente. Se la classe ausiliaria 'x-a' è sottoclasse di 'x-b', aggiungere 'x-a' aggiunge implicitamente anche 'x-b' se assente.

I server DEVONO (SHALL) impedire che siano eliminate superclassi dei valori 'objectClass' rimanenti. Se 'x-a' è sottoclasse ausiliaria di 'x-b' e l’attributo contiene entrambe, il tentativo di eliminare soltanto 'x-b' è un errore.

3.4. Attributi operativi​

Alcuni attributi, detti operativi, sono usati o mantenuti dai server a fini amministrativi e operativi. [X.501] ne distingue tre tipi: attributi operativi della Directory, condivisi tra DSA e specifici di un DSA.

Un attributo operativo della Directory rappresenta informazioni operative e/o amministrative del modello informativo della Directory. Include attributi mantenuti dal server (per esempio 'createTimestamp') e attributi con valori amministrati dall’utente (per esempio 'ditContentRules').

Un attributo operativo condiviso tra DSA rappresenta informazioni del modello DSA condivise tra DSA. Un attributo specifico di un DSA rappresenta informazioni proprie del DSA, talvolta derivate da informazioni condivise (per esempio 'namingContexts'). I dettagli sono in [X.501].

Gli attributi operativi non sono normalmente visibili e vengono restituiti nelle ricerche solo se richiesti esplicitamente per nome. Non tutti sono modificabili dall’utente.

Le voci possono contenere, tra gli altri:

  - creatorsName: nome distinto dell’utente che ha aggiunto la voce;
- createTimestamp: istante di aggiunta della voce;
- modifiersName: nome distinto dell’ultimo utente che l’ha modificata;
- modifyTimestamp: istante dell’ultima modifica.

I server DOVREBBERO (SHOULD) mantenere questi quattro attributi per tutte le voci del DIT.

3.4.1. 'creatorsName'​

Questo attributo compare nelle voci aggiunte mediante il protocollo (per esempio con Add). Il valore è il nome distinto del creatore.

  ( 2.5.18.3 NAME 'creatorsName'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )

'distinguishedNameMatch' e la sintassi DistinguishedName (1.3.6.1.4.1.1466.115.121.1.12) sono definiti in [RFC4517].

3.4.2. 'createTimestamp'​

Questo attributo compare nelle voci aggiunte mediante il protocollo (per esempio con Add). Il valore è l’istante di aggiunta.

  ( 2.5.18.1 NAME 'createTimestamp'
EQUALITY generalizedTimeMatch
ORDERING generalizedTimeOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )

'generalizedTimeMatch', 'generalizedTimeOrderingMatch' e GeneralizedTime (1.3.6.1.4.1.1466.115.121.1.24) sono definiti in [RFC4517].

3.4.3. 'modifiersName'​

Questo attributo compare nelle voci modificate mediante il protocollo (per esempio con Modify). Il valore è il nome distinto dell’ultimo modificatore.

  ( 2.5.18.4 NAME 'modifiersName'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )

'distinguishedNameMatch' e DistinguishedName (1.3.6.1.4.1.1466.115.121.1.12) sono definiti in [RFC4517].

3.4.4. 'modifyTimestamp'​

Questo attributo compare nelle voci modificate mediante il protocollo (per esempio con Modify). Il valore è l’istante dell’ultima modifica.

  ( 2.5.18.2 NAME 'modifyTimestamp'
EQUALITY generalizedTimeMatch
ORDERING generalizedTimeOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )

'generalizedTimeMatch', 'generalizedTimeOrderingMatch' e GeneralizedTime (1.3.6.1.4.1.1466.115.121.1.24) sono definiti in [RFC4517].

3.4.5. 'structuralObjectClass'​

Indica la classe strutturale della voce.

  ( 2.5.21.9 NAME 'structuralObjectClass'
EQUALITY objectIdentifierMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )

'objectIdentifierMatch' e OBJECT IDENTIFIER (1.3.6.1.4.1.1466.115.121.1.38) sono definiti in [RFC4517].

3.4.6. 'governingStructureRule'​

Indica la regola di struttura che governa la voce.

  ( 2.5.21.10 NAME 'governingStructureRule'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE NO-USER-MODIFICATION
USAGE directoryOperation )

'integerMatch' e INTEGER (1.3.6.1.4.1.1466.115.121.1.27) sono definiti in [RFC4517].