Passa al contenuto principale

RFC 4517 - Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules

  • Stato: Proposed Standard
  • Pubblicato: June 2006
  • Stream: IETF
  • Aggiorna: RFC3698
  • Sostituisce: RFC2252, RFC2256
  • Errata: Nessun errata

Sommario

Ogni attributo memorizzato in una directory Lightweight Directory Access Protocol (LDAP), i cui valori possono essere trasferiti nel protocollo LDAP, ha una sintassi definita che vincola la struttura e il formato dei suoi valori. La semantica di confronto per i valori di una sintassi non fa parte della definizione della sintassi, ma viene invece fornita tramite regole di corrispondenza definite separatamente. Le regole di corrispondenza specificano un argomento, un valore di asserzione, che ha anche una sintassi definita. Questo documento definisce un set di base di sintassi e regole di corrispondenza da utilizzare nella definizione degli attributi per le directory LDAP.

Indice

  1. Introduzione
  2. Convenzioni
  3. Sintassi 3.1. Considerazioni generali 3.2. Definizioni comuni 3.3. Definizioni di sintassi 3.3.1. Descrizione del tipo di attributo (Attribute Type Description) 3.3.2. Stringa di bit (Bit String) 3.3.3. Booleano (Boolean) 3.3.4. Stringa paese (Country String) 3.3.5. Metodo di consegna (Delivery Method) 3.3.6. Stringa di directory (Directory String) 3.3.7. Descrizione della regola di contenuto DIT (DIT Content Rule Description) 3.3.8. Descrizione della regola di struttura DIT (DIT Structure Rule Description) 3.3.9. DN 3.3.10. Guida avanzata (Enhanced Guide) 3.3.11. Numero di telefono facsimile (Facsimile Telephone Number) 3.3.12. Fax 3.3.13. Ora generalizzata (Generalized Time) 3.3.14. Guida (Guide) 3.3.15. Stringa IA5 (IA5 String) 3.3.16. Intero (Integer) 3.3.17. JPEG 3.3.18. Descrizione della sintassi LDAP (LDAP Syntax Description) 3.3.19. Descrizione della regola di corrispondenza (Matching Rule Description) 3.3.20. Descrizione dell'uso della regola di corrispondenza (Matching Rule Use Description) 3.3.21. Nome e UID opzionale (Name and Optional UID) 3.3.22. Descrizione del modulo nome (Name Form Description) 3.3.23. Stringa numerica (Numeric String) 3.3.24. Descrizione della classe oggetto (Object Class Description) 3.3.25. Stringa di ottetti (Octet String) 3.3.26. OID 3.3.27. Altra casella postale (Other Mailbox) 3.3.28. Indirizzo postale (Postal Address) 3.3.29. Stringa stampabile (Printable String) 3.3.30. Asserzione di sottostringa (Substring Assertion) 3.3.31. Numero di telefono (Telephone Number) 3.3.32. Identificatore terminale Teletex (Teletex Terminal Identifier) 3.3.33. Numero Telex (Telex Number) 3.3.34. Ora UTC (UTC Time)
  4. Regole di corrispondenza 4.1. Considerazioni generali 4.2. Definizioni delle regole di corrispondenza
  5. Considerazioni sulla sicurezza
  6. Ringraziamenti
  7. Considerazioni IANA
  8. Riferimenti Appendice A. Riepilogo degli identificatori di oggetto della sintassi Appendice B. Modifiche rispetto a RFC 2252

1. Introduzione

Ogni attributo memorizzato in una directory Lightweight Directory Access Protocol (LDAP) [RFC4510], i cui valori possono essere trasferiti nel protocollo LDAP [RFC4511], ha una sintassi definita (ovvero un tipo di dati) che vincola la struttura e il formato dei suoi valori. La semantica di confronto per i valori di una sintassi non fa parte della definizione della sintassi, ma viene invece fornita tramite regole di corrispondenza definite separatamente. Le regole di corrispondenza specificano un argomento, un valore di asserzione, che ha anche una sintassi definita. Questo documento definisce un set di base di sintassi e regole di corrispondenza da utilizzare nella definizione degli attributi per le directory LDAP.

Si consiglia ai lettori di familiarizzare con i modelli di informazioni sulla directory [RFC4512] prima di leggere il resto di questo documento. La sezione 3 fornisce le definizioni per il set di base delle sintassi LDAP. La sezione 4 fornisce le definizioni per il set di base delle regole di corrispondenza per LDAP.

Questo documento è parte integrante della specifica tecnica LDAP [RFC4510], che rende obsoleta la specifica tecnica LDAP precedentemente definita, RFC 3377, nella sua interezza.

Le sezioni 4, 5 e 7 della RFC 2252 sono rese obsolete da [RFC4512]. Il resto della RFC 2252 è reso obsoleto da questo documento. Le sezioni 6 e 8 della RFC 2256 sono rese obsolete da questo documento. Il resto della RFC 2256 è reso obsoleto da [RFC4519] e [RFC4512]. Tutto tranne la sezione 2.11 della RFC 3698 è reso obsoleto da questo documento.

Un certo numero di elementi dello schema inclusi nella precedente revisione della specifica tecnica LDAP non sono inclusi in questa revisione di LDAP. Gli elementi dello schema dell'infrastruttura a chiave pubblica sono ora specificati in [RFC4523]. A meno che non vengano reintrodotti in future specifiche tecniche, il resto deve essere considerato storico.

Le modifiche rispetto alla RFC 2252 sono descritte nell'Appendice B di questo documento.

2. Convenzioni

In questo documento, le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" e "OPTIONAL" devono essere interpretate come descritto in BCP 14, RFC 2119 [RFC2119].

3. Sintassi

Le definizioni di sintassi vincolano la struttura dei valori degli attributi memorizzati in una directory LDAP e determinano la rappresentazione degli attributi e dei valori di asserzione trasferiti nel protocollo LDAP.

Le sintassi richieste per il funzionamento della directory o che sono di uso comune sono specificate in questa sezione. I server DOVREBBERO riconoscere tutte le sintassi elencate in questo documento, ma non sono tenuti a supportarle in altro modo e POSSONO riconoscere o supportare altre sintassi. Tuttavia, la definizione di sintassi arbitrarie aggiuntive è sconsigliata poiché ostacolerà l'interoperabilità. Le implementazioni client e server in genere non hanno la capacità di riconoscere dinamicamente nuove sintassi.

3.1. Considerazioni generali

La descrizione di ciascuna sintassi specifica come i valori di attributo o asserzione conformi alla sintassi devono essere rappresentati quando trasferiti nel protocollo LDAP [RFC4511]. Questa rappresentazione è indicata come codifica specifica LDAP per distinguerla da altri metodi di codifica dei valori degli attributi (ad esempio, la codifica Basic Encoding Rules (BER) [BER] utilizzata dalle directory X.500 [X.500]).

3.2. Definizioni comuni

Le seguenti regole ABNF sono utilizzate in una serie di definizioni di sintassi nella Sezione 3.3.

      PrintableCharacter = ALPHA / DIGIT / SQUOTE / LPAREN / RPAREN /
PLUS / COMMA / HYPHEN / DOT / EQUALS /
SLASH / COLON / QUESTION / SPACE
PrintableString = 1*PrintableCharacter
IA5String = *(%x00-7F)
SLASH = %x2F ; forward slash ("/")
COLON = %x3A ; colon (":")
QUESTION = %x3F ; question mark ("?")

3.3. Definizioni di sintassi

(Le definizioni dettagliate delle sintassi specifiche sono omesse qui. Si prega di fare riferimento al documento originale.)

4. Regole di corrispondenza

Le regole di corrispondenza definiscono l'algoritmo da utilizzare per confrontare un valore di attributo e un valore di asserzione.

4.1. Considerazioni generali

Ogni regola di corrispondenza è identificata in modo univoco da un identificatore di oggetto [ASN.1]. Le regole di corrispondenza definite in questo documento hanno anche un nome breve (descrittore).

Le definizioni delle regole di corrispondenza specificano la sintassi del valore di asserzione da confrontare. La sintassi del valore dell'attributo non è specificata ma deve essere compatibile con la sintassi del valore dell'asserzione.

4.2. Definizioni delle regole di corrispondenza

(Le definizioni dettagliate delle regole di corrispondenza specifiche sono omesse qui. Si prega di fare riferimento al documento originale.)

5. Considerazioni sulla sicurezza

Molte delle sintassi definite in questo documento coinvolgono dati binari o stringhe di un formato specifico. L'analisi o l'elaborazione errata di questi valori può portare a vulnerabilità di sicurezza come overflow del buffer. Gli implementatori dovrebbero garantire di gestire tutte le sintassi in modo robusto.

La complessità delle regole di corrispondenza varia. Alcune (come la corrispondenza delle sottostringhe) possono essere costose dal punto di vista computazionale. I server dovrebbero adottare misure per prevenire attacchi di tipo denial-of-service, ad esempio limitando il tempo o l'utilizzo delle risorse per le ricerche.

6. Ringraziamenti

(Vedi originale)

7. Considerazioni IANA

(Vedi originale)

8. Riferimenti

(Vedi originale)