diff options
Diffstat (limited to 'doc/rfc/rfc4876.txt')
-rw-r--r-- | doc/rfc/rfc4876.txt | 2187 |
1 files changed, 2187 insertions, 0 deletions
diff --git a/doc/rfc/rfc4876.txt b/doc/rfc/rfc4876.txt new file mode 100644 index 0000000..1b762ce --- /dev/null +++ b/doc/rfc/rfc4876.txt @@ -0,0 +1,2187 @@ + + + + + + +Network Working Group B. Neal-Joslin, Ed. +Request for Comments: 4876 HP +Category: Informational L. Howard + PADL + M. Ansari + Infoblox + May 2007 + + + A Configuration Profile Schema for + Lightweight Directory Access Protocol (LDAP)-Based Agents + +Status of This Memo + + This memo provides information for the Internet community. It does + not specify an Internet standard of any kind. Distribution of this + memo is unlimited. + +Copyright Notice + + Copyright (C) The IETF Trust (2007). + +IESG Note + + This RFC is not a candidate for any level of Internet Standard. The + IETF disclaims any knowledge of the fitness of this RFC for any + purpose and in particular notes that the decision to publish is not + based on IETF review for such things as security, congestion control, + or inappropriate interaction with deployed protocols. The RFC Editor + has chosen to publish this document at its discretion. Readers of + this document should exercise caution in evaluating its value for + implementation and deployment. See RFC 3932 for more information. + +Abstract + + This document consists of two primary components, a schema for agents + that make use of the Lightweight Directory Access protocol (LDAP) and + a proposed use case of that schema, for distributed configuration of + similar directory user agents. A set of attribute types and an + object class are proposed. In the proposed use case, directory user + agents (DUAs) can use this schema to determine directory data + location and access parameters for specific services they support. + In addition, in the proposed use case, attribute and object class + mapping allows DUAs to reconfigure their expected (default) schema to + match that of the end user's environment. This document is intended + to be a skeleton for future documents that describe configuration of + specific DUA services. + + + + +Neal-Joslin, et al. Informational [Page 1] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +Table of Contents + + 1. Background and Motivation . . . . . . . . . . . . . . . . . . 3 + 2. General Information . . . . . . . . . . . . . . . . . . . . . 4 + 2.1. Requirements Notation . . . . . . . . . . . . . . . . . . 4 + 2.2. Attributes Summary . . . . . . . . . . . . . . . . . . . . 5 + 2.3. Object Classes Summary . . . . . . . . . . . . . . . . . . 5 + 2.4. Common Syntax/Encoding Definitions . . . . . . . . . . . . 5 + 3. Schema Definition . . . . . . . . . . . . . . . . . . . . . . 6 + 3.1. Attribute Definitions . . . . . . . . . . . . . . . . . . 6 + 3.2. Class Definition . . . . . . . . . . . . . . . . . . . . . 9 + 4. DUA Implementation Details . . . . . . . . . . . . . . . . . . 10 + 4.1. Interpreting the preferredServerList Attribute . . . . . . 10 + 4.2. Interpreting the defaultServerList Attribute . . . . . . . 11 + 4.3. Interpreting the defaultSearchBase Attribute . . . . . . . 12 + 4.4. Interpreting the authenticationMethod Attribute . . . . . 13 + 4.5. Interpreting the credentialLevel Attribute . . . . . . . . 15 + 4.6. Interpreting the serviceSearchDescriptor Attribute . . . . 16 + 4.7. Interpreting the attributeMap Attribute . . . . . . . . . 20 + 4.8. Interpreting the searchTimeLimit Attribute . . . . . . . . 23 + 4.9. Interpreting the bindTimeLimit Attribute . . . . . . . . . 23 + 4.10. Interpreting the followReferrals Attribute . . . . . . . . 24 + 4.11. Interpreting the dereferenceAliases Attribute . . . . . . 24 + 4.12. Interpreting the profileTTL Attribute . . . . . . . . . . 24 + 4.13. Interpreting the objectclassMap Attribute . . . . . . . . 25 + 4.14. Interpreting the defaultSearchScope Attribute . . . . . . 27 + 4.15. Interpreting the serviceAuthenticationMethod Attribute . . 27 + 4.16. Interpreting the serviceCredentialLevel Attribute . . . . 28 + 5. Binding to the Directory Server . . . . . . . . . . . . . . . 29 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 29 + 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 30 + 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 + 8.1. Registration of Object Classes . . . . . . . . . . . . . . 31 + 8.2. Registration of Attribute Types . . . . . . . . . . . . . 31 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 33 + 9.1. Normative References . . . . . . . . . . . . . . . . . . . 33 + 9.2. Informative References . . . . . . . . . . . . . . . . . . 34 + Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 35 + + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 2] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +1. Background and Motivation + + LDAP [RFC4510] has brought about a nearly ubiquitous acceptance of + the directory server. Many client applications (DUAs) are being + created that use LDAP directories for many different services. And + although the LDAP protocol has eased the development of these + applications, some challenges still exist for both developers and + directory administrators. + + The authors of this document are implementers of DUAs described by + [RFC2307]. In developing these agents, we felt there were several + issues that still need to be addressed to ease the deployment and + configuration of a large network of these DUAs. + + One of these challenges stems from the lack of a utopian schema. A + utopian schema would be one that every application developer could + agree upon and that would support every application. Unfortunately + today, many DUAs define their own schema, even when they provide + similar services (like RFC 2307 vs. Microsoft's Services for Unix + [MSSFU]). These schemas contain similar attributes, but use + different attribute names. This can lead to data redundancy within + directory entries and cause directory administrators unwanted + challenges, updating schemas and synchronizing data. Or, in a more + common case, two or more applications may agree on common schema + elements, but choose a different schema for other elements of data + that might also be shareable between the applications. While data + synchronization and translation tools exist, the authors of this + document believe there is value in providing this capability in the + directory user agent itself. + + Aside from proposing a schema for general use, one goal of this + document is to eliminate data redundancy by having DUAs configure + themselves to the schema of the deployed directory, instead of + forcing the DUA's own schema on the directory. + + Another goal of this document is to provide the DUA with enough + configuration information so that it can discover how to retrieve its + data in the directory, such as what locations to search in the + directory tree. + + Finally, this document intends to describe a configuration method for + DUAs that can be shared among many DUAs on various platforms, + providing, as such, a configuration profile. The purpose of this + profile is to centralize and simplify management of DUAs. + + This document is intended to provide the skeleton framework for + future documents that will describe the individual implementation + details for the particular services provided by that DUA. The + + + +Neal-Joslin, et al. Informational [Page 3] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + authors of this document plan to develop such a document for the + Network Information Service DUA, described by RFC 2307 or its + successor. + + We expect that as DUAs take advantage of this configuration scheme, + each DUA will require additional configuration parameters, not + specified by this document. Thus, we would expect that new auxiliary + object classes that contain new configuration attributes will be + created and then joined with the structural class defined by this + document to create a configuration profile for a particular DUA + service. By joining various auxiliary object classes for different + DUA services, the configuration of various DUA services can be + controlled by a single configuration profile entry. + +2. General Information + + The schema defined by this document is defined under the "DUA + Configuration Schema". This schema is derived from the object + identifier (OID): iso (1) org (3) dod (6) internet (1) private (4) + enterprises (1) Hewlett-Packard Company (11) directory (1) LDAP-UX + Integration Project (3) DUA Configuration Schema (1). This OID is + represented in this document by the keystring "DUAConfSchemaOID" + (1.3.6.1.4.1.11.1.3.1). + +2.1. Requirements Notation + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC2119]. + + + + + + + + + + + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 4] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +2.2. Attributes Summary + + The following attributes are defined in this document: + + preferredServerList + defaultServerList + defaultSearchBase + defaultSearchScope + authenticationMethod + credentialLevel + serviceSearchDescriptor + serviceCredentialLevel + serviceAuthenticationMethod + attributeMap + objectclassMap + searchTimeLimit + bindTimeLimit + followReferrals + dereferenceAliases + profileTTL + +2.3. Object Classes Summary + + The following object class is defined in this document: + + DUAConfigProfile + +2.4. Common Syntax/Encoding Definitions + + The proposed string encodings used by the attributes defined in this + document can be found in Section 4. This document makes use of ABNF + [RFC4234] for defining new encodings. + + The following syntax definitions are used throughout this document. + + + + + + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 5] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + The list of used syntaxes are: + + +---------------------------+---------------------------------------+ + | Key | Source | + +---------------------------+---------------------------------------+ + | keystring | as defined by [RFC4512] Section 1.4 | + | descr | as defined by [RFC4512] Section 1.4 | + | SP | as defined by [RFC4512] Section 1.4 | + | WSP | as defined by [RFC4512] Section 1.4 | + | base | as defined by distinguishedName in | + | | [RFC4514] | + | distinguishedName | as defined by [RFC4514] Section 2 | + | relativeDistinguishedName | as defined by [RFC4514] Section 2 | + | scope | as defined by [RFC4516] Section 2 | + | host | as defined by [RFC3986] Section 3.2.2 | + | hostport | host [":" port ] | + | port | as defined by [RFC3986] Section 3.2.3 | + | serviceID | same as keystring | + +---------------------------+---------------------------------------+ + + This document does not define new syntaxes that must be supported by + the directory server. Instead, these syntaxes are merely expected to + be interpreted by the DUA. As referenced in the schema definition in + Section 3, most encodings are expected to be stored in attributes + using common syntaxes, such as the Directory String syntax, as + defined in Section 3.3.6 of [RFC4517]. Refer to RFC 4517 for + additional syntaxes used by this schema. + +3. Schema Definition + + This section defines a proposed schema. This schema does not require + definition of new matching rules or syntaxes, and it may be used for + any purpose seen. A proposed use of this schema to support elements + of configuration of a directory user agent is described in Section 4. + +3.1. Attribute Definitions + + This section contains attribute definitions used by agents. The + syntax used to describe these attributes is defined in [RFC4512], + Section 4.1.2. Individual syntaxes and matching rules used within + these descriptions are described in [RFC4517], Sections 3.3 and 4.2, + respectively. + + + + + + + + + +Neal-Joslin, et al. Informational [Page 6] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + ( 1.3.6.1.4.1.11.1.3.1.1.0 NAME 'defaultServerList' + DESC 'List of default servers' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 + SINGLE-VALUE ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.1 NAME 'defaultSearchBase' + DESC 'Default base for searches' + EQUALITY distinguishedNameMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 + SINGLE-VALUE ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.2 NAME 'preferredServerList' + DESC 'List of preferred servers' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 + SINGLE-VALUE ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.3 NAME 'searchTimeLimit' + DESC 'Maximum time an agent or service allows for a + search to complete' + EQUALITY integerMatch + ORDERING integerOrderingMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SINGLE-VALUE ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.4 NAME 'bindTimeLimit' + DESC 'Maximum time an agent or service allows for a + bind operation to complete' + EQUALITY integerMatch + ORDERING integerOrderingMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SINGLE-VALUE ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.5 NAME 'followReferrals' + DESC 'An agent or service does or should follow referrals' + EQUALITY booleanMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 + SINGLE-VALUE ) + + + + + +Neal-Joslin, et al. Informational [Page 7] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + ( 1.3.6.1.4.1.11.1.3.1.1.6 NAME 'authenticationMethod' + DESC 'Identifies the types of authentication methods either + used, required, or provided by a service or peer' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 + SINGLE-VALUE ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.7 NAME 'profileTTL' + DESC 'Time to live, in seconds, before a profile is + considered stale' + EQUALITY integerMatch + ORDERING integerOrderingMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SINGLE-VALUE ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.9 NAME 'attributeMap' + DESC 'Attribute mappings used, required, or supported by an + agent or service' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.10 NAME 'credentialLevel' + DESC 'Identifies type of credentials either used, required, + or supported by an agent or service' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 + SINGLE-VALUE ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.11 NAME 'objectclassMap' + DESC 'Object class mappings used, required, or supported by + an agent or service' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.12 NAME 'defaultSearchScope' + DESC 'Default scope used when performing a search' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 + SINGLE-VALUE ) + + + + + + +Neal-Joslin, et al. Informational [Page 8] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + ( 1.3.6.1.4.1.11.1.3.1.1.13 NAME 'serviceCredentialLevel' + DESC 'Specifies the type of credentials either used, required, + or supported by a specific service' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.14 NAME 'serviceSearchDescriptor' + DESC 'Specifies search descriptors required, used, or + supported by a particular service or agent' + EQUALITY caseExactMatch + SUBSTR caseExactSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.15 NAME 'serviceAuthenticationMethod' + DESC 'Specifies types authentication methods either + used, required, or supported by a particular service' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) + + + ( 1.3.6.1.4.1.11.1.3.1.1.16 NAME 'dereferenceAliases' + DESC 'Specifies if a service or agent either requires, + supports, or uses dereferencing of aliases.' + EQUALITY booleanMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 + SINGLE-VALUE ) + +3.2. Class Definition + + The object class below is constructed from the attributes defined in + Section 3.1, with the exception of the "cn" attribute, which is + defined in [RFC4519]. "cn" is used to represent the name of the DUA + configuration profile and is recommended for the relative + distinguished name (RDN) [RFC4514] naming attribute. This object + class is used specifically by the DUA described in Section 4. The + syntax used to describe this object class is defined in [RFC4512], + Section 4.1.1. + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 9] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + ( 1.3.6.1.4.1.11.1.3.1.2.5 NAME 'DUAConfigProfile' + SUP top STRUCTURAL + DESC 'Abstraction of a base configuration for a DUA' + MUST ( cn ) + MAY ( defaultServerList $ preferredServerList $ + defaultSearchBase $ defaultSearchScope $ + searchTimeLimit $ bindTimeLimit $ + credentialLevel $ authenticationMethod $ + followReferrals $ dereferenceAliases $ + serviceSearchDescriptor $ serviceCredentialLevel $ + serviceAuthenticationMethod $ objectclassMap $ + attributeMap $ profileTTL ) ) + +4. DUA Implementation Details + + This section describes an implementation of the schema described in + Section 3. Details about how a DUA should format and interpret the + defined attributes are described below. Agents that make use of the + DUAConfigProfile object class are expected to follow the + specifications in this section. + + Note: Many of the subsections below contain examples. Unless + otherwise specified, these examples are rendered using the LDAP Data + Interchange Format (LDIF) [RFC2849]. + +4.1. Interpreting the preferredServerList Attribute + + Interpretation: + + As described by the syntax, the preferredServerList parameter is a + whitespace-separated list of server addresses and associated port + numbers. When the DUA needs to contact a directory server agent + (DSA), the DUA MUST first attempt to contact one of the servers + listed in the preferredServerList attribute. The DUA MUST contact + the DSA specified by the first server address in the list. If + that DSA is unavailable, the remaining DSAs MUST be queried in the + order provided (left to right) until a connection is established + with a DSA. Once a connection with a DSA is established, the DUA + SHOULD NOT attempt to establish a connection with the remaining + DSAs. The purpose of enumerating multiple DSAs is not for + supplemental data, but for high availability of replicated data. + This is also the main reason why an LDAP URL [RFC3986] syntax was + not selected for this document. + + If the DUA is unable to contact any of the DSAs specified by the + preferredServerList, the defaultServerList attribute MUST be + examined, as described in Section 4.2. The servers identified by + + + + +Neal-Joslin, et al. Informational [Page 10] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + the preferredServerList MUST be contacted before attempting to + contact any of the servers specified by the defaultServerList. + + Syntax: + + serverList = hostport *(SP [hostport]) + + Default Value: + + The preferredServerList attribute does not have a default value. + Instead a DUA MUST examine the defaultServerList attribute. + + Other attribute notes: + + This attribute is used in conjunction with the defaultServerList + attribute. Please see Section 4.2 for additional implementation + notes. Determining how the DUA should query the DSAs also depends + on the additional configuration attributes, credentialLevel, + serviceCredentialLevel, bindTimeLimit, + serviceAuthenticationMethod, and authenticationMethod. Please + review Section 5 for details on how a DUA should properly bind to + a DSA. + + Example: + + preferredServerList: 192.168.169.170 ldap1.mycorp.com + ldap2:1389 [1080::8:800:200C:417A]:389 + +4.2. Interpreting the defaultServerList Attribute + + Interpretation: + + The defaultServerList attribute MUST only be examined if the + preferredServerList attribute is not provided, or the DUA is + unable to establish a connection with any of the DSAs specified by + the preferredServerList. + + If more than one address is provided, the DUA may choose either to + accept the order provided or to create its own order, based on + what the DUA determines is the "best" order of DSAs to query. For + example, the DUA may choose to examine the server list and to + query the DSAs in order based on the "closest" server or the + server with the least amount of "load". Interpretation of the + "best" server order is entirely up to the DUA, and not part of + this document. + + Once the order of server addresses is determined, the DUA contacts + the DSA specified by the first server address in the list. If + + + +Neal-Joslin, et al. Informational [Page 11] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + that DSA is unavailable, the remaining DSAs SHOULD be queried + until an available DSA is found, or no more DSAs are available. + If a server address or port is invalid, the DUA SHOULD proceed to + the next server address as described just above. + + Syntax: + + serverList = hostport *(SP [hostport]) + + Default Value: + + If a defaultServerList attribute is not provided, the DUA MAY + attempt to contact the same DSA that provided the configuration + profile entry itself. The default DSA is contacted only if the + preferredServerList attribute is also not provided. + + Other attribute notes: + + This attribute is used in conjunction with the preferredServerList + attribute. Please see Section 4.1 for additional implementation + notes. Determining how the DUA should query the DSAs also depends + on the additional configuration attributes, credentialLevel, + serviceCredentialLevel, bindTimeLimit, + serviceAuthenticationMethod, and authenticationMethod. Please + review Section 5 for details on how a DUA should properly contact + a DSA. + + Example: + + defaultServerList: 192.168.169.170 ldap1.mycorp.com + ldap2:1389 [1080::8:800:200C:417A]:5912 + +4.3. Interpreting the defaultSearchBase Attribute + + Interpretation: + + When a DUA needs to search the DSA for information, this attribute + provides the base for the search. This parameter can be + overridden or appended by the serviceSearchDescriptor attribute. + See Section 4.6. + + Syntax: + + Defined by OID 1.3.6.1.4.1.1466.115.121.1.12 [RFC4517]. + + + + + + + +Neal-Joslin, et al. Informational [Page 12] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Default Value: + + There is no default value for the defaultSearchBase. A DUA MAY + define its own method for determining the search base, if the + defaultSearchBase is not provided. + + Other attribute notes: + + This attribute is used in conjunction with the + serviceSearchDescriptor attribute. See Section 4.6. + + Example: + + defaultSearchBase: dc=mycompany,dc=com + +4.4. Interpreting the authenticationMethod Attribute + + Interpretation: + + The authenticationMethod attribute defines an ordered list of LDAP + bind methods to be used when attempting to contact a DSA. The + serviceAuthenticationMethod overrides this value for a particular + service (see Section 4.15). Each method MUST be attempted in the + order provided by the attribute, until a successful LDAP bind is + performed ("none" is assumed to always be successful). However, + the DUA MAY skip over one or more methods. See Section 5 for more + information. + + none - The DUA does not perform an LDAP bind. + + simple - The DUA performs an LDAP simple bind. + + sasl - The DUA performs an LDAP Simple Authentication and + Security Layer (SASL) [RFC4422] bind using the specified + SASL mechanism and options. + + tls - The DUA performs an LDAP StartTLS operation followed by + the specified bind method (for more information refer to + Section 4.14 of [RFC4511]). + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 13] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Syntax: + + authMethod = method *(";" method) + + method = none / simple / sasl / tls + + none = "none" + + simple = "simple" + + sasl = "sasl/" saslmech [ ":" sasloption ] + + sasloption = "auth-conf" / "auth-int" + + tls = "tls:" (none / simple / sasl) + + saslmech = SASL mechanism name as defined in [SASLMECH] + + Note: Although multiple authentication methods may be specified in + the syntax, at most one of each type is allowed. That is, + "simple;simple" is invalid. + + Default Value: + + If the authenticationMethod or serviceAuthenticationMethod (for + that particular service) attributes are not provided, the DUA MAY + choose to bind to the DSA using any method defined by the DUA. + However, if either authenticationMethod or + serviceAuthenticationMethod is provided, the DUA MUST only use the + methods specified. + + Other attribute notes: + + When using TLS, the string "tls:sasl/EXTERNAL" implies that both + client and server (DSA and DUA) authentications are to be + performed. Any other TLS authentication method implies server- + only (DSA side credential) authentication, along with the other + SASL method used for DUA-side authentication. + + Determining how the DUA should bind to the DSAs also depends on + the additional configuration attributes, credentialLevel, + serviceCredentialLevel, serviceAuthenticationMethod, and + bindTimeLimit. Please review Section 5 for details on how to + properly bind to a DSA. + + + + + + + +Neal-Joslin, et al. Informational [Page 14] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Example: + + authenticationMethod: tls:simple;sasl/DIGEST-MD5 + + (see [RFC2831]) + +4.5. Interpreting the credentialLevel Attribute + + Interpretation: + + The credentialLevel attribute defines what type(s) of + credential(s) the DUA MUST use when contacting the DSA. The + serviceCredentialLevel overrides this value for a particular + service (Section 4.16). The credentialLevel can contain more than + one credential type, separated by whitespace. + + anonymous The DUA SHOULD NOT use a credential when binding to the + DSA. + + proxy The DUA SHOULD use a known proxy identity when binding + to the DSA. A proxy identity is a specific credential + that was created to represent the DUA. This document + does not define how the proxy user should be created, or + how the DUA should determine what the proxy user's + credential is. This functionality is up to each + implementation. + + self When the DUA is acting on behalf of a known identity, + the DUA MUST attempt to bind to the DSA as that + identity. The DUA should contain methods to determine + the identity of the user such that the identity can be + authenticated by the directory server using the defined + authentication methods. + + If the credentialLevel contains more than one credential type, the + DUA MUST use the credential types in the order specified. + However, the DUA MAY skip over one or more credential types. As + soon as the DUA is able to successfully bind to the DSA, the DUA + SHOULD NOT attempt to bind using the remaining credential types. + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 15] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Syntax: + + credentialLevel = level *(SP level) + + level = self / proxy / anonymous + + self = "self" + + proxy = "proxy" + + anonymous = "anonymous" + + Note: Although multiple credential levels may be specified in the + syntax, at most one of each type is allowed. Refer to + implementation notes in Section 5 for additional syntax + requirements for the credentialLevel attribute. + + Default Value: + + If the credentialLevel attribute is not defined, the DUA SHOULD + NOT use a credential when binding to the DSA (also known as + anonymous). + + Other attribute notes: + + Determining how the DUA should bind to the DSAs also depends on + the additional configuration attributes, authenticationMethod, + serviceAuthenticationMethod, serviceCredentialLevel, and + bindTimeLimit. Please review Section 5 for details on how to + properly bind to a DSA. + + Example: + + credentialLevel: proxy anonymous + +4.6. Interpreting the serviceSearchDescriptor Attribute + + Interpretation: + + The serviceSearchDescriptor attribute defines how and where a DUA + SHOULD search for information for a particular service. The + serviceSearchDescriptor contains a serviceID, followed by one or + more base-scope-filter triples. These base-scope-filter triples + are used to define searches only for the specific service. + Multiple base-scope-filters allow the DUA to search for data in + multiple locations in the directory information tree (DIT). + Although this syntax is very similar to the LDAP URL [RFC3986], + this document requires the ability to supply multiple hosts as + + + +Neal-Joslin, et al. Informational [Page 16] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + part of the configuration of the DSA. In addition, an ordered + list of search descriptors is required, which cannot be specified + by the LDAP URL. + + The serviceSearchDescriptor might also contain the DN of an entry + that will contain an alternate profile. The DSA SHOULD re- + evaluate the alternate profile and perform searches as specified + by that profile. + + If the base, as defined in the serviceSearchDescriptor, is + followed by the "," (ASCII 0x2C) character, this base is known as + a relative base. This relative base may be constructed of one or + more RDN components. In this case, the DUA MUST define the search + base by appending the relative base with the defaultSearchBase. + + Syntax: + + serviceSearchList = serviceID ":" serviceSearchDesc *(";" + serviceSearchDesc) + + serviceSearchDesc = confReferral / searchDescriptor + + searchDescriptor = [base] ["?" [scopeSyntax] ["?" [filter]]] + + confReferral = "ref:" distinguishedName + + base = distinguishedName / relativeBaseName + + relativeBaseName = 1*(relativeDistinguishedName ",") + + filter = UTF-8 encoded string + + If the confReferral, base, relativeBaseName, or filter contains + the ";" (ASCII 0x3B), "?" (ASCII 0x3F), """ (ASCII 0x22), or "\" + (ASCII 0x5C) characters, those characters MUST be escaped + (preceded by the "\" character). Alternately, the DN may be + surrounded by quotes (ASCII 0x22). Refer to RFC 4514. If the + confReferral, base, relativeBaseName, or filter are surrounded by + quotes, only the """ character needs to be escaped. Any character + that does not need to be escaped, and yet is preceded by the "\" + character, results in both the "\" character and the character + itself. + + The usage and syntax of the filter string MUST be defined by the + DUA service. A suggested syntax would be that defined by + [RFC4515]. + + + + + +Neal-Joslin, et al. Informational [Page 17] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + If a DUA is performing a search for a particular service that has + a serviceSearchDescriptor defined, the DUA MUST set the base, + scope, and filter as defined. Each base-scope-filter triple + represents a single LDAP search operation. If multiple base- + scope-filter triples are provided in the serviceSearchDescriptor, + the DUA SHOULD perform multiple search requests, and in that case, + it MUST be in the order specified by the serviceSearchDescriptor. + + FYI: Service search descriptors do not exactly follow the LDAP URL + syntax [RFC4516]. The reasoning for this difference is to + separate the host name(s) from the filter. This allows the DUA to + have a more flexible solution in choosing its DSA. + + Default Value: + + If a serviceSearchDescriptor, or an element thereof, is not + defined for a particular service, the DUA SHOULD create the base, + scope, and filter as follows: + + base - Same as the defaultSearchBase. + + scope - Same as the defaultSearchScope. + + filter - Use defaults as defined by DUA's service. + + If the defaultSearchBase or defaultSearchScope is not defined, + then the DUA service MAY use its own default. + + Other attribute notes: + + If a serviceSearchDescriptor exists for a given service, the + service MUST use at least one base-scope-filter triple in + performing searches. It SHOULD perform multiple searches per + service if multiple base-scope-filter triples are defined for that + service. + + The details of how the "filter" is interpreted by each DUA's + service is defined by that service. This means the filter is NOT + REQUIRED to be a legal LDAP filter [RFC4515]. Furthermore, + determining how attribute and object class mapping affects that + search filter MUST be defined by the service. That is, the DUA + SHOULD specify if the attributes in the filter are assumed to + already have been mapped, or if it is expected that attribute + mapping (see Section 4.7) would be applied to the filter. In + general practice, implementation and usability suggests that + attribute and object class mapping (Sections 4.7 and 4.13) SHOULD + NOT be applied to the filter defined in the + serviceSearchDescriptor. + + + +Neal-Joslin, et al. Informational [Page 18] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + The serviceID is unique to a given service within the scope of any + DUA that might use the given profile, and should be defined by + that service. Registration of serviceIDs is not addressed by this + document. However, as per the guidance at the end of Section 1, + when DUA developers define their use of the DUAConfigProfile + schema, they will define the serviceIDs used by that DUA. + + searchGuide and enhancedSearchGuide [RFC4517]: + + There are a few reasons why the authors chose not to take + advantage of the existing searchGuide and enhancedSearchGuide + attributes and related syntaxes. While the enhancedSearchGuide + met a number of the serviceSearchDescriptor requirements, + serviceSearchDescriptor was developed primarily to support + associating search operations with services. Multiple services + could be configured using the same profile, thus requiring the + serviceID to be specified together with the search descriptor + information. A few other reasons for not using + enhancedSearchGuide include: + + The need to specify alternate search bases, including the + ability to specify search bases that are relative to the parent + defaultSearchBase. + + The need to specify alternate profiles using the "ref:" syntax. + + The ability for individual services to specify their own + syntaxes for the format of the search filter. + + The authors' belief that the user community is more familiar + with the search filter syntax described by RFC 4515 than with + that described by the enhancedSearchGuide syntax. + + Example: + + defaultSearchBase: dc=mycompany,dc=com + + serviceSearchDescriptor: email:ou=people,ou=org1,? + one;ou=contractor,?one; + ref:cn=profile,dc=mycompany,dc=com + + In this example, the DUA MUST search in + "ou=people,ou=org1,dc=mycompany,dc=com" first. The DUA then + SHOULD search in "ou=contractor,dc=mycompany,dc=com", and finally + it SHOULD search other locations as specified in the profile + described at "cn=profile,dc=mycompany,dc=com". For more examples, + see Appendix A. + + + + +Neal-Joslin, et al. Informational [Page 19] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +4.7. Interpreting the attributeMap Attribute + + Interpretation: + + A DUA SHOULD perform attribute mapping for all LDAP operations + performed for a service that has an attributeMap entry. Because + attribute mapping is specific to each service within the DUA, a + "serviceID" is required as part of the attributeMap syntax. That + is, not all DUA services should necessarily perform the same + attribute mapping. + + Attribute mapping in general is expected to be used to map + attributes of similar syntaxes as specified by the service + supported by the DUA. However, a DUA is NOT REQUIRED to verify + syntaxes of mapped attributes. If the DUA does discover that the + syntax of the mapped attribute does not match that of the original + attribute, the DUA MAY perform translation between the original + syntax and the new syntax. When DUAs do support attribute value + translation, the method and list of capable translations SHOULD be + documented in a description of the DUA service. + + Syntax: + + attributeMap = serviceID ":" origAttribute "=" attributes + + origAttribute = attribute + + attributes = wattribute *( SP wattribute ) + + wattribute = WSP newAttribute WSP + + newAttribute = descr / "*NULL*" + + attribute = descr + + Values of the origAttribute are defined by and SHOULD be + documented for the DUA service, as a list of known supported + attributes. + + Default Value: + + By default, attributes that are used by a DUA service are not + mapped unless mapped by the attributeMap attributes. The DUA + SHOULD NOT map an attribute unless it is explicitly defined by an + attributeMap attribute. + + + + + + +Neal-Joslin, et al. Informational [Page 20] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Other attribute notes: + + When an attribute is mapped to the special keystring "*NULL*", the + DUA SHOULD NOT request that attribute from the DSA, when + performing a search or compare request. If the DUA is also + capable of performing modification on the DSA, the DUA SHOULD NOT + attempt to modify any attribute which has been mapped to "*NULL*". + + It is assumed the serviceID is unique to a given service within + the scope of the DSA. + + A DUA SHOULD support attribute mapping. If it does, the following + additional rules apply: + + 1. The list of attributes that are allowed to be mapped SHOULD be + defined by and documented for the service. + + 2. Any supported translation of mapping from attributes of + dissimilar syntax SHOULD also be defined and documented. + + 3. If an attribute may be mapped to multiple attributes, the DSA + SHOULD define a syntax or usage statement for how the new + attribute value will be constructed. Furthermore, the + resulting translated syntax of the combined attributes MUST be + the same as the attribute being mapped. + + 4. A DUA MUST support mapping of attributes using the attribute + OID. It SHOULD support attribute mapping based on the + attribute name. + + 5. It is recommended that attribute mapping not be applied to + parents of the target entries. + + 6. Attribute mapping is not recursive. In other words, if an + attribute has been mapped to a target attribute, that new + target attribute MUST NOT be mapped to a third attribute. + + 7. A given attribute MUST only be mapped once for a given + service. + + Example: + + Suppose a DUA is acting on behalf of an email service. By default + the "email" service uses the "mail", "cn", and "sn" attributes to + discover mail addresses. However, the email service has been + deployed in an environment that uses "employeeName" instead of + "cn". Also, instead of using the "mail" attribute for email + addresses, the "email" attribute is used. In this case, the + + + +Neal-Joslin, et al. Informational [Page 21] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + attribute "cn" can be mapped to "employeeName", allowing the DUA + to perform searches using the "employeeName" attribute as part of + the search filter, instead of "cn". Also, "mail" can be mapped to + "email" when attempting to retrieve the email address. This + mapping is performed by adding the attributeMap attributes to the + configuration profile entry as follows (represented in LDIF + [RFC2849]): + + attributeMap: email:cn=employeeName + attributeMap: email:mail=email + + As described above, the DUA MAY also map a single attribute to + multiple attributes. When mapping a single attribute to more than + one attribute, the new syntax or usage of the mapped attribute must + be intrinsically defined by the DUAs service. + + attributeMap: email:cn=firstName lastName + + In the above example, the DUA creates the new value by generating a + space-separated string using the values of the mapped attributes. In + this case, a special mapping must be defined so that a proper search + filter can be created. For further information on this example, + please refer to Appendix A. + + Another possibility for multiple attribute mapping might come in + when constructing returned attributes. For example, perhaps all + email addresses are of a guaranteed syntax of "uid@domain". In + this example, the uid and domain are separate attributes in the + directory. The email service may define that if the "mail" + attribute is mapped to two different attributes, it will construct + the email address as a concatenation of the two attributes (uid + and domain), placing the "@" character between them. + + attributeMap: email:mail=uid domain + + Note: The attributeMap attribute contains only a list of attribute + names that should be mapped, not the definition of how syntax + translation should be performed. The process used to perform + attribute value syntax translation (such as translating a uid to a + DN) and/or joining of multiple attribute values to form the target + syntax (such as in the above email example) is up to the service. + The attribute list defined in the attributeMap merely provides the + attributes that would be used as inputs to the translation function + provided by the service. + + + + + + + +Neal-Joslin, et al. Informational [Page 22] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +4.8. Interpreting the searchTimeLimit Attribute + + Interpretation: + + The searchTimeLimit attribute defines the maximum time, in + seconds, that the DUA SHOULD allow for a search request to + complete. + + Syntax: + + Defined by OID 1.3.6.1.4.1.1466.115.121.1.27 [RFC4517]. + + Default Value: + + If the searchTimeLimit attribute is not defined or is zero, the + searchTimeLimit SHOULD NOT be enforced by the DUA. + + Other attribute notes: + + This time limit only includes the amount of time required to + perform the LDAP search operation. If other operations are + required, they do not need to be considered part of the search + time. See bindTimeLimit for the LDAP bind operation. + +4.9. Interpreting the bindTimeLimit Attribute + + Interpretation: + + The bindTimeLimit attribute defines the maximum time, in seconds, + that a DUA SHOULD allow for the bind request to complete when + performed against each server on the preferredServerList or + defaultServerList. + + Syntax: + + Defined by OID 1.3.6.1.4.1.1466.115.121.1.27. + + Default Value: + + If the bindTimeLimit attribute is not defined or is zero, the + bindTimeLimit SHOULD NOT be enforced by the DUA. + + Other attribute notes: + + This time limit only includes the amount of time required to + perform the LDAP bind operation. If other operations are + required, those operations do not need to be considered part of + the bind time. See searchTimeLimit for the LDAP search operation. + + + +Neal-Joslin, et al. Informational [Page 23] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +4.10. Interpreting the followReferrals Attribute + + Interpretation: + + If set to TRUE, the DUA SHOULD follow any referrals if discovered. + + If set to FALSE, the DUA MUST NOT follow referrals. + + Syntax: + + Defined by OID 1.3.6.1.4.1.1466.115.121.1.7 [RFC4517]. + + Default Value: + + If the followReferrals attribute is not set or set to an invalid + value, the default value is TRUE. + +4.11. Interpreting the dereferenceAliases Attribute + + Interpretation: + + If set to TRUE, the DUA SHOULD enable alias dereferencing. + + If set to FALSE, the DUA MUST NOT enable alias dereferencing. + + Syntax: + + Defined by OID 1.3.6.1.4.1.1466.115.121.1.7. + + Default Value: + + If the dereferenceAliases attribute is not set or set to an + invalid value, the default value is TRUE. + +4.12. Interpreting the profileTTL Attribute + + Interpretation: + + The profileTTL attribute defines how often the DUA SHOULD reload + and reconfigure itself using the corresponding configuration + profile entry. The value is represented in seconds. Once a DUA + reloads the profile entry, it SHOULD reconfigure itself with the + new values. + + Syntax: + + Defined by OID 1.3.6.1.4.1.1466.115.121.1.27. + + + + +Neal-Joslin, et al. Informational [Page 24] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Default Value: + + If not specified, the DUA MAY use its own reconfiguration policy. + + Other attribute notes: + + If the profileTTL value is zero, the DUA SHOULD NOT automatically + reload the configuration profile. + +4.13. Interpreting the objectclassMap Attribute + + Interpretation: + + A DUA MAY perform object class mapping for all LDAP operations + performed for a service that has an objectclassMap entry. Because + object class mapping is specific for each service within the DUA, + a "serviceID" is required as part of the objectclassMap syntax. + That is, not all DUA services should necessarily perform the same + object class mapping. + + Object class mapping SHOULD be used in conjunction with attribute + mapping to map the schema required by the service to an equivalent + schema that is available in the directory. + + Object class mapping may or may not be required by a DUA. Often, + the objectclass attribute is used in search filters. Section 4.7 + recommends that attribute mapping not be applied to the + serviceSearchDescriptor. Thus, if the default object classes are + not used in a DUA deployment, typically only the + serviceSearchDescriptor needs to be defined to reflect that + mapping. However, when the service search descriptor is not + provided, and the default search filter for that service contains + the objectclass attribute, that search filter SHOULD be redefined + by object class mapping, if defined. If a default search filter + is not used, it SHOULD be redefined through the + serviceSearchDescriptor. If a serviceSearchDescriptor is defined + for a particular service, it SHOULD NOT be remapped by either the + objectclassMap or attributeMap values. + + One condition where the objectclassMap SHOULD be used is when the + DUA is providing gateway functionality. In this case, the DUA is + acting on behalf of another service, which may pass in a search + filter itself. In this type of DUA, the DUA may alter the search + filter according to the appropriate attributeMap and + objectclassMap values. In this case, it is also assumed that a + serviceSearchDescriptor is not defined. + + + + + +Neal-Joslin, et al. Informational [Page 25] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Syntax: + + objectclassMap = serviceID ":" origObjectclass "=" objectclass + + origObjectclass = objectclass + + objectclass = keystring + + Values of the origObjectclass depend on the type of DUA Service + using the object class mapping feature. + + Default Value: + + The DUA MUST NOT remap an object class unless it is explicitly + defined by an objectclassMap attribute. + + Other attribute notes: + + A DUA SHOULD support object class mapping. If it does, the DUA + MUST support mapping of object classes using the objectclass OID. + It SHOULD support object class mapping based on the object class + name. + + It is assumed the serviceID is unique to a given service within + the scope of the DSA. + + Example: + + Suppose a DUA is acting on behalf of an email service. By default + the "email" service uses the "mail", "cn", and "sn" attributes to + discover mail addresses in entries created using inetOrgPerson + object class [RFC2789]. However, the email service has been + deployed in an environment that uses entries created using + "employee" object class. In this case, the attribute "cn" can be + mapped to "employeeName", and "inetOrgPerson" can be mapped to + "employee", allowing the DUA to perform LDAP operations using the + entries that exist in the directory. This mapping is performed by + adding attributeMap and objectclassMap attributes to the + configuration profile entry as follows (represented in LDIF + [RFC2849]): + + attributeMap: email:cn=employeeName + objectclassMap: email:inetOrgPerson=employee + + + + + + + + +Neal-Joslin, et al. Informational [Page 26] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +4.14. Interpreting the defaultSearchScope Attribute + + Interpretation: + + When a DUA needs to search the DSA for information, this attribute + provides the "scope" for the search. This parameter can be + overridden by the serviceSearchDescriptor attribute. See + Section 4.6. + + Syntax: + + scopeSyntax = "base" / "one" / "sub" + + Default Value: + + The default value for the defaultSearchScope SHOULD be defined by + the DUA service. If the default search scope for a service is not + defined, then the scope SHOULD be for the DUA to perform a subtree + search. + +4.15. Interpreting the serviceAuthenticationMethod Attribute + + Interpretation: + + The serviceAuthenticationMethod attribute defines an ordered list + of LDAP bind methods to be used when attempting to contact a DSA + for a particular service. Interpretation and use of this + attribute is the same as Section 4.4, but specific for each + service. + + Syntax: + + svAuthMethod = serviceID ":" method *(";" method) + + Note: Although multiple authentication methods may be specified in + the syntax, at most one of each type is allowed. + + Default Value: + + If the serviceAuthenticationMethod attribute is not provided, the + authenticationMethod SHOULD be followed, or its default. + + Other attribute notes: + + Determining how the DUA should bind to the DSAs also depends on + the additional configuration attributes, credentialLevel, + serviceCredentialLevel, and bindTimeLimit. Please review + Section 5 for details on how to properly bind to a DSA. + + + +Neal-Joslin, et al. Informational [Page 27] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Example: + + serviceAuthenticationMethod: email:tls:simple;sasl/DIGEST-MD5 + +4.16. Interpreting the serviceCredentialLevel Attribute + + Interpretation: + + The serviceCredentialLevel attribute defines what type(s) of + credential(s) the DUA SHOULD use when contacting the DSA for a + particular service. Interpretation and use of this attribute are + the same as Section 4.5. + + Syntax: + + svCredentialLevel = serviceID ":" level *(SP level) + + Refer to implementation notes in Section 5 for additional syntax + requirements for the credentialLevel attribute. + + Note: Although multiple credential levels may be specified in the + syntax, at most one of each type is allowed. + + Default Value: + + If the serviceCredentialLevel attribute is not defined, the DUA + MUST examine the credentialLevel attribute, or if one is not + provided, the DUA must follow its default. + + Other attribute notes: + + Determining how the DUA should bind to the DSAs also depends on + the additional configuration attributes, + serviceAuthenticationMethod, authenticationMethod, and + bindTimeLimit. Please review Section 5 for details on how to + properly bind to a DSA. + + Example: + + serviceCredentialLevel: email:proxy anonymous + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 28] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +5. Binding to the Directory Server + + The DUA SHOULD use the following algorithm when binding to the + server: + + for (clevel in credLevel) [see Note 1] + if (clevel is "anonymous") + for (host in hostnames) [see Note 2] + if (server is responding) + return success + return failure + else + for (amethod in authMethod) [see Note 3] + if (amethod is none) + for (host in hostnames) + if (server is responding) + return success + return failure + else + for (host in hostnames) + authenticate using amethod and clevel + if (authentication passed) + return success + return failure + + Note 1: The credLevel is a list of credential levels as defined in + serviceCredentialLevel (Section 4.16) for a given service. + If the serviceCredentialLevel is not defined, the DUA MUST + examine the credentialLevel attribute. + + Note 2: hostnames is the list of servers to contact as defined in + Sections 4.1 and 4.2. + + Note 3: The authMethod is a list of authentication methods as + defined in serviceAuthenticationMethod (Section 4.15) for a + given service. If the serviceAuthenticationMethod is not + defined, the DUA MUST examine the authenticationMethod + attribute. + +6. Security Considerations + + The profile entries MUST be protected against unauthorized + modification. Each service needs to consider implications of + providing its service configuration as part of this profile and limit + access to the profile entries accordingly. + + + + + + +Neal-Joslin, et al. Informational [Page 29] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + The management of the authentication credentials for the DUA is + outside the scope of this document and needs to be handled by the + DUA. + + Since the DUA needs to know how to properly bind to the directory + server, the access control configuration of the DSA MUST assure that + the DSA can view all the elements of the DUAConfigProfile attributes. + For example, if the credentialLevel attribute contains "Self", but + the DSA is unable to access the credentialLevel attribute, the DUA + will instead attempt an anonymous connection to the directory server. + + The algorithm described by Section 5 also has security + considerations. Altering that design will alter the security aspects + of the configuration profile. + + At times, DUAs connect to multiple directory servers in order to + support potential high-availability and/or performance requirements. + As such, each directory server specified in the preferredServer list + and defaultServerList MUST contain the same (replicated) data and be + part of the same security domain. This means the directory-supported + authentication methods, authentication policies, and access control + policies for directory data are exactly the same across all the + defined directory servers. + +7. Acknowledgments + + There were several additional authors of this document. However, we + chose to represent only one author per company in the heading. From + Sun, we would like to acknowledge Roberto Tam for his design work on + Sun's first LDAP name service product and his input for this + document. From Hewlett-Packard, we'd like to acknowledge Dave Binder + for his work architecting Hewlett-Packard's LDAP name service product + as well as his design guidance on this document. We'd also like to + acknowledge Grace Lu from HP, for her input and implementation of + HP's configuration profile manager code. + +8. IANA Considerations + + This document defines new LDAP attributes and an object class for + object identifier descriptors. As specified by Section 3.4 and + required by Section 4 of [RFC4520], this document registers new + descriptors as follows per the Expert Review. + + + + + + + + + +Neal-Joslin, et al. Informational [Page 30] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +8.1. Registration of Object Classes + + Subject: Request for LDAP Descriptor Registration + + Descriptor (short name): DUAConfigProfile + + Object Identifier: 1.3.6.1.4.1.11.1.3.1.2.5 + + Person & email address to contact for further information: + See "Author/Change Controller" + + Usage: object class + + Specification: RFC 4876 + + + Author/Change Controller: + + Bob Neal-Joslin + Hewlett-Packard Company + 19420 Homestead RD + Cupertino, CA 95014 + USA + Phone: +1 408-447-3044 + EMail: bob_joslin@hp.com + + Comments: + + See also the associated request for the defaultServerList, + defaultSearchBase, preferredServerList, searchTimeLimit, + bindTimeLimit, followReferrals, authenticationMethod, + profileTTL, attributeMap, credentialLevel, objectclassMap, + defaultSearchScope, serviceCredentialLevel, + serviceSearchDescriptor, serviceAuthenticationMethod, and + dereferenceAliases attribute types. + +8.2. Registration of Attribute Types + + Subject: Request for LDAP Descriptor Registration + + Descriptor (short name): See comments + + Object Identifier: See comments + + Person & email address to contact for further information: + See "Author/Change Controller" + + Usage: attribute type + + + +Neal-Joslin, et al. Informational [Page 31] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Specification: RFC 4876 + + + Author/Change Controller: + + Bob Neal-Joslin + Hewlett-Packard Company + 19420 Homestead RD + Cupertino, CA 95014 + USA + Phone: +1 408-447-3044 + EMail: bob_joslin@hp.com + + Comments: + + The following object identifiers and associated attribute + types have been registered. + + OID Attribute Type + -------------------------- --------------------------- + 1.3.6.1.4.1.11.1.3.1.1.0 defaultServerList + 1.3.6.1.4.1.11.1.3.1.1.1 defaultSearchBase + 1.3.6.1.4.1.11.1.3.1.1.2 preferredServerList + 1.3.6.1.4.1.11.1.3.1.1.3 searchTimeLimit + 1.3.6.1.4.1.11.1.3.1.1.4 bindTimeLimit + 1.3.6.1.4.1.11.1.3.1.1.5 followReferrals + 1.3.6.1.4.1.11.1.3.1.1.6 authenticationMethod + 1.3.6.1.4.1.11.1.3.1.1.7 profileTTL + 1.3.6.1.4.1.11.1.3.1.1.9 attributeMap + 1.3.6.1.4.1.11.1.3.1.1.10 credentialLevel + 1.3.6.1.4.1.11.1.3.1.1.11 objectclassMap + 1.3.6.1.4.1.11.1.3.1.1.12 defaultSearchScope + 1.3.6.1.4.1.11.1.3.1.1.13 serviceCredentialLevel + 1.3.6.1.4.1.11.1.3.1.1.14 serviceSearchDescriptor + 1.3.6.1.4.1.11.1.3.1.1.15 serviceAuthenticationMethod + 1.3.6.1.4.1.11.1.3.1.1.16 dereferenceAliases + + Please also see the associated registration request for the + DUAConfigProfile object class. + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 32] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +9. References + +9.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, + RFC 3986, January 2005. + + [RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for + Syntax Specifications: ABNF", RFC 4234, October 2005. + + [RFC4510] Zeilenga, K., "Lightweight Directory Access Protocol + (LDAP): Technical Specification Road Map", RFC 4510, + June 2006. + + [RFC4511] Sermersheim, J., "Lightweight Directory Access Protocol + (LDAP): The Protocol", RFC 4511, June 2006. + + [RFC4512] Zeilenga, K., "Lightweight Directory Access Protocol + (LDAP): Directory Information Models", RFC 4512, + June 2006. + + [RFC4514] Zeilenga, K., "Lightweight Directory Access Protocol + (LDAP): String Representation of Distinguished Names", + RFC 4514, June 2006. + + [RFC4516] Smith, M. and T. Howes, "Lightweight Directory Access + Protocol (LDAP): Uniform Resource Locator", RFC 4516, + June 2006. + + [RFC4517] Legg, S., "Lightweight Directory Access Protocol (LDAP): + Syntaxes and Matching Rules", RFC 4517, June 2006. + + [RFC4519] Sciberras, A., "Lightweight Directory Access Protocol + (LDAP): Schema for User Applications", RFC 4519, + June 2006. + + [SASLMECH] IANA, "SIMPLE AUTHENTICATION AND SECURITY LAYER (SASL) + MECHANISMS", July 2006, + <http://www.iana.org/assignments/sasl-mechanisms>. + + + + + + + + +Neal-Joslin, et al. Informational [Page 33] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +9.2. Informative References + + [MSSFU] Microsoft Corporation, "Windows Services for Unix 3.5", + <http://www.microsoft.com/windows/sfu/>. + + [RFC2307] Howard, L., "An Approach for Using LDAP as a Network + Information Service", RFC 2307, March 1998. + + [RFC2789] Freed, N. and S. Kille, "Mail Monitoring MIB", RFC 2789, + March 2000. + + [RFC2831] Leach, P. and C. Newman, "Using Digest Authentication as + a SASL Mechanism", RFC 2831, May 2000. + + [RFC2849] Good, G., "The LDAP Data Interchange Format (LDIF) - + Technical Specification", RFC 2849, June 2000. + + [RFC4422] Melnikov, A. and K. Zeilenga, "Simple Authentication and + Security Layer (SASL)", RFC 4422, June 2006. + + [RFC4515] Smith, M. and T. Howes, "Lightweight Directory Access + Protocol (LDAP): String Representation of Search + Filters", RFC 4515, June 2006. + + [RFC4520] Zeilenga, K., "Internet Assigned Numbers Authority (IANA) + Considerations for the Lightweight Directory Access + Protocol (LDAP)", BCP 64, RFC 4520, June 2006. + + + + + + + + + + + + + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 34] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +Appendix A. Examples + + In this section, we will describe a fictional DUA that provides one + service, called the "email" service. This service would be similar + to an email client that uses an LDAP directory to discover email + addresses based on a textual representation of the recipient's + colloquial name. + + This email service is defined by default to expect that users with + email addresses will be of the "inetOrgPerson" object class type + [RFC2789]. And by default, the "email" service expects the + colloquial name to be stored in the "cn" attribute, while it expects + the email address to be stored in the "mail" attribute (as one would + expect as defined by the inetOrgPerson object class). + + As a special feature, the "email" service will perform a special type + of attribute mapping when performing searches. If the "cn" attribute + has been mapped to two or more attributes, the "email" service will + parse the requested search string and map each whitespace-separated + token into the mapped attributes, respectively. + + The default search filter for the "email" service is + "(objectclass=inetOrgPerson)". The email service also defines that + when it performs a name-to-address discovery, it will wrap the search + filter inside a complex search filter as follows: + + (&(<filter>)(cn~=<name string>)) + + Or, if "cn" has been mapped to multiple attributes, that wrapping + would appear as follows: + + (&(<filter>)(attr1~=<token1>)(attr2~=<token2>)...) + + The below examples show how the "email" service builds its search + requests, based on the defined profile. In all cases, the + defaultSearchBase is "o=airius.com", and the defaultSearchScope is + undefined. + + In addition, for all examples, we assume that the "email" service has + been requested to discover the email address for "Jane Hernandez". + + Example 1: + + serviceSearchDescriptor: email:"ou=marketing," + + base: ou=marketing,o=airius.com + scope: sub + filter: (&(objectclass=inetOrgPerson)(cn~=Jane Hernandez)) + + + +Neal-Joslin, et al. Informational [Page 35] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Example 2: + + serviceSearchDescriptor: email:"ou=marketing,"?one? + (&(objectclass=inetOrgPerson)(c=us)) + attributeMap: email:cn=2.5.4.42 sn + + Note: 2.5.4.42 is the OID that represents the "givenName" + attribute. + + In this example, the email service performs <name string> parsing as + described above to generate a complex search filter. The above + example results in one search. + + base: ou=marketing,o=airius.com + scope: one + filter: (&(&(objectclass=inetOrgPerson)(c=us)) + (2.5.4.42~=Jane)(sn~=Hernandez)) + + Example 3: + + serviceSearchDescriptor: email:ou=marketing,"?base + attributeMap: email:cn=name + + This example is invalid, because either the quote should have + been escaped, or there should have been a leading quote. + + Example 4: + + serviceSearchDescriptor: email:ou=\\mar\\\\keting,\\"?base + attributeMap: email:cn=name + + base: ou=\\mar\\keting," + scope: base + filter (&(objectclass=inetOrgPerson)(name~=Jane Hernandez)) + + Example 5: + + serviceSearchDescriptor: email:ou="marketing",o=supercom + + This example is invalid, since the quote was not a leading quote, + and thus should have been escaped. + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 36] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + + Example 6: + + serviceSearchDescriptor: email:??(&(objectclass=person) + (ou=Org1 \\\\(temporary\\\\))) + + base: o=airius.com + scope: sub + filter: (&((&(objectclass=person)(ou=Org1 \\(Temporary\\))) + (cn~=Jane Henderson))) + + Example 7: + + serviceSearchDescriptor: email:"ou=funny?org," + + base: ou=funny?org,o=airius.com + scope: sub + filter (&(objectclass=inetOrgPerson)(cn~=Jane Hernandez)) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 37] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +Authors' Addresses + + Bob Neal-Joslin (editor) + Hewlett-Packard Company + 19420 Homestead RD + M/S 4029 + Cupertino, CA 95014 + US + + Phone: +1 408 447 3044 + EMail: bob_joslin@hp.com + URI: http://www.hp.com + + + Luke Howard + PADL Software Pty. Ltd. + PO Box 59 + Central Park, Vic 3145 + AU + + EMail: lukeh@padl.com + URI: http://www.padl.com + + + Morteza Ansari + Infoblox + 475 Potrero Avenue + Sunnyvale, CA 94085 + US + + Phone: +1 408 716 4300 + EMail: morteza@infoblox.com + + + + + + + + + + + + + + + + + + + +Neal-Joslin, et al. Informational [Page 38] + +RFC 4876 LDAP-Based Agent Configuration Schema May 2007 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2007). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + +Neal-Joslin, et al. Informational [Page 39] + |