Passa al contenuto principale

2. Definizione dell'URL

Un URL LDAP inizia con il prefisso del protocollo "ldap" ed è definito dalla seguente grammatica, seguendo la notazione ABNF definita in [RFC4234].

      ldapurl     = scheme COLON SLASH SLASH [host [COLON port]]
[SLASH dn [QUESTION [attributes]
[QUESTION [scope] [QUESTION [filter]
[QUESTION extensions]]]]]
; <host> and <port> are defined
; in Sections 3.2.2 and 3.2.3
; of [RFC3986].
; <filter> is from Section 3 of
; [RFC4515], subject to the
; provisions of the
; "Percent-Encoding" section
; below.

scheme = "ldap"

dn = distinguishedName ; From Section 3 of [RFC4514],
; subject to the provisions of
; the "Percent-Encoding"
; section below.

attributes = attrdesc *(COMMA attrdesc)
attrdesc = selector *(COMMA selector)
selector = attributeSelector ; From Section 4.5.1 of
; [RFC4511], subject to the
; provisions of the
; "Percent-Encoding" section
; below.

scope = "base" / "one" / "sub"
extensions = extension *(COMMA extension)
extension = [EXCLAMATION] extype [EQUALS exvalue]
extype = oid ; From section 1.4 of [RFC4512].

exvalue = LDAPString ; From section 4.1.2 of
; [RFC4511], subject to the
; provisions of the
; "Percent-Encoding" section
; below.

EXCLAMATION = %x21 ; exclamation mark ("!")
SLASH = %x2F ; forward slash ("/")
COLON = %x3A ; colon (":")
QUESTION = %x3F ; question mark ("?")

Il prefisso "ldap" indica una voce o voci accessibili dal server LDAP in esecuzione sul nome host specificato al numero di porta specificato. Si noti che <host> può contenere indirizzi IPv6 letterali come specificato nella Sezione 3.2.2 di [RFC3986].

Il <dn> è un Distinguished Name LDAP che utilizza il formato stringa descritto in [RFC4514]. Identifica l'oggetto di base della ricerca LDAP o la destinazione di un'operazione non di ricerca.

Il costrutto <attributes> viene utilizzato per indicare quali attributi devono essere restituiti dalla voce o dalle voci.

Il costrutto <scope> viene utilizzato per specificare l'ambito della ricerca da eseguire nel server LDAP specificato. Gli ambiti consentiti sono "base" per una ricerca dell'oggetto base, "one" per una ricerca di un livello o "sub" per una ricerca nel sottoalbero.

Il <filter> viene utilizzato per specificare il filtro di ricerca da applicare alle voci all'interno dell'ambito specificato durante la ricerca. Ha il formato specificato in [RFC4515].

Il costrutto <extensions> fornisce all'URL LDAP un meccanismo di estensibilità, consentendo di estendere le capacità dell'URL in futuro. Le estensioni sono un semplice elenco separato da virgole di coppie tipo=valore, in cui la parte =valore PUÒ (MAY) essere omessa per le opzioni che non la richiedono. Ogni coppia tipo=valore è un'estensione separata. Queste estensioni URL LDAP non sono necessariamente correlate a nessuno dei meccanismi di estensione LDAP. Le estensioni possono essere supportate o non supportate dal client che risolve l'URL. Un'estensione preceduta da un carattere '!' (ASCII 0x21) è critica. Un'estensione non preceduta da un carattere '!' non è critica.

Se viene implementata un'estensione URL LDAP (ovvero, se l'implementazione la comprende ed è in grado di utilizzarla), l'implementazione DEVE (MUST) utilizzarla. Se un'estensione non è implementata ed è contrassegnata come critica, l'implementazione NON DEVE (MUST NOT) elaborare l'URL. Se un'estensione non è implementata e non è contrassegnata come critica, l'implementazione DEVE (MUST) ignorare l'estensione.

Il tipo di estensione (<extype>) PUÒ (MAY) essere specificato utilizzando il modulo OID numerico <numericoid> (ad esempio, 1.2.3.4) o il modulo descrittore <descr> (ad esempio, myLDAPURLExtension). L'uso del modulo <descr> DOVREBBE (SHOULD) essere limitato ai nomi descrittivi degli identificatori di oggetto registrati. Vedere [RFC4520] per i dettagli di registrazione e le linee guida per l'uso dei nomi descrittivi.

Nessuna estensione URL LDAP è definita in questo documento. Altri documenti o una versione futura di questo documento POSSONO (MAY) definire una o più estensioni.

2.1. Codifica percentuale​

Un URL LDAP generato DEVE (MUST) essere costituito solo dal set ristretto di caratteri inclusi in una delle seguenti tre produzioni definite in [RFC3986]:

      <reserved>
<unreserved>
<pct-encoded>

Le implementazioni DOVREBBERO (SHOULD) accettare altre stringhe UTF-8 valide [RFC3629] come input. Un ottetto DEVE (MUST) essere codificato utilizzando il meccanismo di codifica percentuale descritto nella sezione 2.1 di [RFC3986] in una di queste situazioni:

  • L'ottetto non è nel set riservato definito nella sezione 2.2 di [RFC3986] o nel set non riservato definito nella sezione 2.3 di [RFC3986].
  • È il singolo carattere riservato '?' e si verifica all'interno di un <dn>, <filter> o altro elemento di un URL LDAP.
  • È un carattere virgola ',' che si verifica all'interno di un <exvalue>.

Si noti che prima dell'applicazione del meccanismo di codifica percentuale, il componente estensioni dell'URL LDAP può contenere uno o più byte nulli (zero). Nessun altro componente può farlo.