1. Introduzione
Il presente documento tratta i modelli informativi della directory X.500 [X.501] così come sono utilizzati dal Lightweight Directory Access Protocol (LDAP) [RFC4510].
La directory è «un insieme di sistemi aperti che cooperano per fornire servizi di directory» [X.500]. Le informazioni contenute nella directory sono collettivamente denominate base informativa della directory (Directory Information Base, DIB). Un utente della directory, che può essere una persona o un'altra entità, accede alla directory tramite un client (o agente utente della directory (Directory User Agent, DUA)). Per conto dell'utente della directory, il client interagisce con uno o più server (o agenti di sistema della directory (Directory System Agents, DSA)). Un server conserva un frammento della DIB.
La DIB contiene due categorie di informazioni:
1) informazioni utente (ad esempio, informazioni fornite e
amministrate dagli utenti). La Sezione 2 descrive il modello
delle informazioni utente;
2) informazioni amministrative e operative (ad esempio,
informazioni utilizzate per amministrare e/o gestire la
directory). La Sezione 3 descrive il modello delle informazioni
amministrative e operative della directory.
Questi due modelli, denominati modelli informativi generici della directory, descrivono come le informazioni vengono rappresentate nella directory. Tali modelli generici costituiscono un quadro di riferimento per altri modelli informativi. La Sezione 4 tratta il modello informativo del sottoschema e il rilevamento del sottoschema. La Sezione 5 tratta il modello informativo del DSA (server).
Altri modelli informativi X.500 (come i modelli informativi relativi al controllo degli accessi, alla conoscenza della distribuzione e alla conoscenza della replica) possono essere adattati all'uso in LDAP. La specifica di come tali modelli si applichino a LDAP è demandata a documenti futuri.
1.1. Relazione con le altre specifiche LDAP
Il presente documento è parte integrante della specifica tecnica LDAP [RFC4510], che rende interamente obsoleta la specifica tecnica LDAP precedentemente definita dalla RFC 3377.
Il presente documento rende obsolete le Sezioni 3.2 e 3.4 della RFC 2251, nonché parti delle Sezioni 4 e 6. L'Appendice A.1 riassume le modifiche a tali sezioni. La parte restante della RFC 2251 è resa obsoleta dai documenti [RFC4511], [RFC4513] e [RFC4510].
Il presente documento rende obsolete le Sezioni 4, 5 e 7 della RFC 2252. L'Appendice A.2 riassume le modifiche a tali sezioni. La parte restante della RFC 2252 è resa obsoleta da [RFC4517].
Il presente documento rende obsolete le Sezioni 5.1, 5.2, 7.1 e 7.2 della RFC 2256. L'Appendice A.3 riassume le modifiche a tali sezioni. La parte restante della RFC 2256 è resa obsoleta da [RFC4519] e [RFC4517].
Il presente documento rende interamente obsoleta la RFC 3674. L'Appendice A.4 riassume le modifiche apportate dopo la RFC 3674.
1.2. Relazione con X.501
Il presente documento include materiale tratto da [X.501], con e senza adattamenti, nella misura necessaria a descrivere questo protocollo. Tali adattamenti (e ogni altra differenza qui presente) si applicano a questo protocollo e soltanto a questo protocollo.
1.3. Convenzioni
Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" e "OPTIONAL" nel presente documento devono essere interpretate come descritto nel BCP 14 [RFC2119].
Le definizioni dello schema sono fornite utilizzando i formati di descrizione LDAP (come definiti nella Sezione 4.1). Le definizioni qui riportate sono formattate (con righe mandate a capo) per facilitarne la lettura. Le regole di corrispondenza e le sintassi LDAP a cui fanno riferimento tali definizioni sono specificate in [RFC4517].
1.4. Produzioni ABNF comuni
Diverse sintassi del presente documento sono descritte mediante la forma Backus-Naur aumentata (Augmented Backus-Naur Form, ABNF) [RFC4234]. Queste sintassi (così come varie sintassi definite in altri documenti) si basano sulle seguenti produzioni comuni:
keystring = leadkeychar *keychar
leadkeychar = ALPHA
keychar = ALPHA / DIGIT / HYPHEN
number = DIGIT / ( LDIGIT 1*DIGIT )
ALPHA = %x41-5A / %x61-7A ; "A"-"Z" / "a"-"z"
DIGIT = %x30 / LDIGIT ; "0"-"9"
LDIGIT = %x31-39 ; "1"-"9"
HEX = DIGIT / %x41-46 / %x61-66 ; "0"-"9" / "A"-"F" / "a"-"f"
SP = 1*SPACE ; one or more " "
WSP = 0*SPACE ; zero or more " "
NULL = %x00 ; null (0)
SPACE = %x20 ; space (" ")
DQUOTE = %x22 ; quote (""")
SHARP = %x23 ; octothorpe (or sharp sign) ("#")
DOLLAR = %x24 ; dollar sign ("$")
SQUOTE = %x27 ; single quote ("'")
LPAREN = %x28 ; left paren ("(")
RPAREN = %x29 ; right paren (")")
PLUS = %x2B ; plus sign ("+")
COMMA = %x2C ; comma (",")
HYPHEN = %x2D ; hyphen ("-")
DOT = %x2E ; period (".")
SEMI = %x3B ; semicolon (";")
LANGLE = %x3C ; left angle bracket ("<")
EQUALS = %x3D ; equals sign ("=")
RANGLE = %x3E ; right angle bracket (">")
ESC = %x5C ; backslash ("\")
USCORE = %x5F ; underscore ("_")
LCURLY = %x7B ; left curly brace "{"
RCURLY = %x7D ; right curly brace "}"
; Any UTF-8 [RFC3629] encoded Unicode [Unicode] character
UTF8 = UTF1 / UTFMB
UTFMB = UTF2 / UTF3 / UTF4
UTF0 = %x80-BF
UTF1 = %x00-7F
UTF2 = %xC2-DF UTF0
UTF3 = %xE0 %xA0-BF UTF0 / %xE1-EC 2(UTF0) /
%xED %x80-9F UTF0 / %xEE-EF 2(UTF0)
UTF4 = %xF0 %x90-BF 2(UTF0) / %xF1-F3 3(UTF0) /
%xF4 %x80-8F 2(UTF0)
OCTET = %x00-FF ; Any octet (8-bit data unit)
Gli identificatori di oggetto (OID) [X.680] sono rappresentati in LDAP mediante un formato decimale puntato conforme alla seguente ABNF:
numericoid = number 1*( DOT number )
I nomi brevi, noti anche come descrittori, vengono utilizzati come alias più leggibili degli identificatori di oggetto. I nomi brevi non fanno distinzione tra maiuscole e minuscole e sono conformi alla seguente ABNF:
descr = keystring
Quando è possibile specificare un identificatore di oggetto oppure un nome breve, si utilizza la seguente produzione:
oid = descr / numericoid
Sebbene la forma
Le implementazioni SHOULD trattare come non riconosciuti i nomi brevi (descrittori) utilizzati in modo ambiguo (come discusso sopra).
I nomi brevi (descrittori) sono trattati ulteriormente nella Sezione 6.2.