One document matched: draft-ietf-asid-ldap-rpcschema-00.txt
ASID Working Group S. Judd
INTERNET-DRAFT Microsoft Corporation
S. Thatte
Microsoft Corporation
P. Leach
Microsoft Corporation
W. Hopkins
Hewlett-Packard Corporation
Expires August 28, 1997 February 28, 1997
Lightweight Directory Access Protocol:
Schema for Storing RPC Entries in a Directory Service
< draft-ietf-asid-ldap-rpcschema-00.txt >
1. Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its
areas, and its working groups. Note that other groups may also
distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-
Drafts as reference material or to cite them other than as "work
in progress."
To learn the current status of any Internet-Draft, please check
the "1id-abstracts.txt" listing contained in the Internet-
Drafts Shadow Directories on ds.internic.net (US East Coast),
nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or
munnari.oz.au (Pacific Rim).
2. Abstract
The Lightweight Directory Access Protocol [1][2] defines a
standard protocol for accessing diverse directory services. One
common use of a directory service is the location of application
services, among which are RPC services.
This document defines a set of object classes and attributes for
storing metadata and binding information for RPC services that
are DCE-compliant or closely follow the DCE model, in
directories that support LDAP.
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
3. Table of Contents
1. Status of this Memo....................................1
2. Abstract...............................................1
3. Table of Contents......................................2
4. Overview...............................................2
5. Objects and Attributes.................................3
5.1. Notation...............................................4
5.2. Object Naming..........................................4
5.3. Object Definitions.....................................4
5.4. Attribute Definitions..................................6
6. Usage Model............................................9
6.1. DCE Relative Names.....................................10
7. Authors' Addresses.....................................10
8. Bibliography...........................................11
4. Overview
This document defines a schema that conforms closely to the DCE
conceptual model for RPC entries. This schema allows an RPC
Name Service Interface (NSI) implementation to use LDAP to store
RPC entries, and to use LDAP queries to implement the RPC Name
Service Interface (NSI) lookup APIs.
Note on terminology: in this document the terms "property" and
"attribute" are used interchangeably.
The requirement is to support three kinds of RPC Name Service
Entries:
@ Server Entries: server entries support the retrieval of a set of
string bindings for any combination of Entry Name, Interface ID
and version, Object ID, Transfer Syntax, and transfer syntax
version
@ Group Entries: a set of RPC entries identified by an Entry name
@ Profile Entries: a profile establishes a priority-based search
order through a set of entries. This is essentially a "list of
sets" with the outer list ordered by priority and each inner set
being a set of entries at the current priority
DCE RPC defines the concept of a "mixed entry" in which a single
entry serves multiple purposes - for example, entries that serve
as both Group and Server entries. Mixed entries are not
supported by this schema. This seldom-used DCE RPC feature
leads to unnecessary complexity for both implementers and users
of the RPC Name Service Interface.
To meet these requirements the schema defines seven object
classes:
@ container
@ rpcEntry
@ rpcGroup
Judd, Thatte, Leach, Hopkins [Page 2]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
@ rpcServer
@ rpcServerElement
@ rpcProfile
@ rpcProfileElement
and 9 attributes:
@ rpcNsObjectID
@ rpcNsGroup
@ rpcNsPriority
@ rpcNsProfileEntry
@ rpcNsInterrfaceId
@ rpcNsAnnotation
@ rpcNsCodeset
@ rpcNsBindings
@ rpcNsTransferSyntax
Taken together these object classes and attributes implement the
DCE-RPC concept of an "Entry".
The rpcEntry object class is an abstract class from which all
other RPC objects derive, so that they may be easily located in
a search.
An rpcGroup, rpcServer, or rpcProfile object forms the "root" of
an entry. The type of entry is determined by the object class.
Note that the types are mutually exclusive; an entry cannot
serve multiple purposes. Separating the entry types into
distinct object classes simplifies the task of the NSI provider
in determining how to handle a given entry.
Table 1: RPC Entry Types
Entry Type Object Class(es)
---------------------------------------------------------------
Group rpcGroup, holds a set of references to other RPC-
Entry objects
Profile rpcProfile, a container holding a set of
rpcProfileEntry objects, each holding a list of
references to entries with a given priority.
Server rpcServer, a container holding a set of
rpcServerElement objects, each holding the
identification of one or more interfaces (and/or
objects) offered by a given server
---------------------------------------------------------------
5. Objects and Attributes
The 'top', 'country', 'locality', 'organization' and
'organizationalUnit' object classes are included in the "LDAPv3
Standard and Pilot Attribute Definitions", a work in progress
[2].
Judd, Thatte, Leach, Hopkins [Page 3]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
5.1. Notation
The notation used in this document is the same as that used in
[2], with the following difference: the referenced notation does
not allow the expression of both permissible parentage and class
inheritance. The BNF in [2] for defining object classes is
therefore extended as follows:
<ObjectClassDescription> ::= "("
<oid> -- ObjectClass identifier
[ "NAME" <DirectoryStrings> ]
[ "DESC" <DirectoryString> ]
[ "OBSOLETE" ]
[ "SUP" <oids> ] -- ObjectClass[es] from which this
class is derived
[ "PARENT" <oids> ] -- Permissible parents of this
object class
[ ( "ABSTRACT" | "STRUCTURAL" | "AUXILIARY" ) ]
[ "MUST" <oids> ] -- AttributeTypes
[ "MAY" <oids> ] -- AttributeTypes
")"
5.2. Object Naming
All objects have 'cn' (Common-name) as their naming attribute;
this attribute provides the RDN for the object. 'cn' is included
in [2] and defined in [4].
5.3. Object Definitions
5.3.1. Container
The Container object is a general purpose container for use in
building containment hierarchies, and is not specific to RPC.
(1.2.840.113556.1.3.23
NAME 'container'
SUP top
PARENT (country $organization $ organizationalUnit $
locality $ container)
)
5.3.2. RPC Entry
The RPC Entry is an abstract class from which all other RPC
classes are derived.
Judd, Thatte, Leach, Hopkins [Page 4]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
( 1.2.840.113556.1.5.27
NAME 'rpcEntry'
SUP top
ABSTRACT
MUST cn
)
5.3.3. RPC Group
The rpcGroup object defines an RPC Group. The cn is the RDN
component of the entry name provided by the user in the NSI API
call that creates the group. The rpcNsObjectID attribute
contains string UUIDs of objects added to the group entry by
applications. These Object IDs are not used by the NSI provider
during lookup operations.
( 1.2.840.113556.1.5.80
NAME 'rpcGroup'
SUP rpcEntry
PARENT (country $organization $ organizationalUnit $
locality $ container)
STRUCTURAL
MUST rpsNsGroup
MAY rpcNsObjectID
)
5.3.4. RPC Profile
RPC Profile entries are implemented by two object classes. The
rpcProfile object class is a container. It is used to gather
profile elements into a single profile instance. The cn is the
RDN component of the entry name provided by the user in the NSI
API call that creates the profile.
( 1.2.840.113556.1.5.82
NAME 'rpcProfile'
SUP rpcEntry
PARENT (country $ organization $ organizationalUnit $
locality $ container)
STRUCTURAL
)
The rpcProfileElement object describes a single element in the
profile. The entire profile is retrieved with a single-level
LDAP search rooted at the parent rpcProfile container. The cn
is a string UUID generated by the NSI provider when the
rpcProfileElement instance is created.
( 1.2.840.113556.1.5.26
NAME 'rpcProfileElement'
SUP rpcEntry
Judd, Thatte, Leach, Hopkins [Page 5]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
PARENT rpcProfile
STRUCTURAL
MUST ( rpcNsPriority $ rpcNsProfileEntry $ rpcNsInterfaceId )
MAY rpcNsAnnotation
)
5.3.5. RPC Server
RPC Server entries are implemented by two object classes. The
rpcServer object class is a container. It is used to gather
rpcServerElement entries into a single server instance. The CN
is the RDN component of the entry name provided by the user in
the NSI API call that creates the server entry.
( 1.2.840.113556.1.5.81
NAME 'rpcServer'
SUP rpcEntry
PARENT (country $ organization $ organizationalUnit $
locality $ container)
STRUCTURAL
MAY ( rpcNsObjectID $ rpcNsCodeSet )
)
The rpcServerElement object describes a single interface in the
server entry. The entire Server entry is retrieved with a
single-level LDAP search rooted at the parent rpcServer
container. The properties of the rpcServerElement object allow
for efficient searching using straightforward LDAP query
expressions. The CN is a string UUID generated by the NSI
provider when the rpcServerElement instance is created.
( 1.2.840.113556.1.5.73
NAME 'rpcServerElement'
SUP rpcEntry
PARENT rpcServer
STRUCTURAL
MUST ( rpcNsInterfaceID $ rpcNsBindings $ rpcNsTransferSyntax )
)
5.4. Attribute Definitions
RPC Name Service implementations search on a well-known set of
properties.Implementations of this schema are advised to index
the following properties for performance reasons:
- rpcNsObjectID
- rpcNsInterfaceID
Judd, Thatte, Leach, Hopkins [Page 6]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
5.4.1. rpcNsObjectID
A set of string UUIDs for objects (in the DCE RPC sense of
objects).
( 1.2.840.113556.1.4.312
NAME 'rpcNsObjectID'
EQUALITY caseIgnoreListMatch
SYNTAX directoryString
USAGE userApplications
)
5.4.2. rpcNsGroup
A set of DN's for RPC entries that are members of a given RPC
group.
( 1.2.840.113556.1.4.114
NAME 'rpcNsGroup'
EQUALITY distinguishedNameMatch
SUBSTRING distinguishedNameMatch
SYNTAX DN
USAGE userApplications
)
5.4.3. rpcNsPriority
An integer value indicating the priority of a given RPC profile
element.
( 1.2.840.113556.1.4.117
NAME 'rpcNsPriority'
EQUALITY integerMatch
SYNTAX INTEGER
USAGE userApplications
)
5.4.4. rpcNsProfileEntry
The DN of a single RPC entry that is a member of a given RPC
profile.
( 1.2.840.113556.1.4.118
NAME 'rpcNsGroup'
EQUALITY distinguishedNameMatch
SUBSTRING distinguishedNameMatch
SYNTAX DN
SINGLE-VALUE
USAGE userApplications
)
Judd, Thatte, Leach, Hopkins [Page 7]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
5.4.5. rpcNsInterfaceId
A string composed of the UUID for an interface exported by an
RPC server,
and the interface major and minor version numbers in the form:
<string-UUID>","<major>"."<minor>.
( 1.2.840.113556.1.4.115
NAME 'rpcNsInterfaceID'
EQUALITY caseIgnoreMatch
SYNTAX directoryString
SINGLE-VALUE
USAGE userApplications
)
5.4.6. rpcNsAnnotation
A string describing a given RPC Profile element.
( 1.2.840.113556.1.4.366
NAME 'rpcNsAnnotation'
EQUALITY caseIgnoreMatch
SUBSTRING caseIgnoreMatch
SYNTAX directoryString
SINGLE-VALUE
USAGE userApplications
)
5.4.7. rpcNsCodeSet
A set of strings identifying the character sets supported by a
given RPC
server.
( 1.2.840.113556.1.4.367
NAME 'rpcNsCodeset'
EQUALITY caseIgnoreListMatch
SYNTAX directoryString
USAGE userApplications
)
5.4.8. rpcNsBindings
A set of binding strings for a given interface and transfer
syntax, in the
form:
<ProtocolSequence>":"<NetworkAddress>"[]" or
<ProtocolSequence>":"<NetworkHostName>"[]"
Judd, Thatte, Leach, Hopkins [Page 8]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
( 1.2.840.113556.1.4.113
NAME 'rpcNsBindings'
EQUALITY caseIgnoreMatch
SYNTAX directoryString
USAGE userApplications
)
5.4.9. rpcNsTransferSyntax
A set of strings composed of the string UUID for a transfer
syntax supported by an RPC server, and the transfer syntax major
and minor version numbers in the form:
<string-UUID>","<major>"."<minor>.
( 1.2.840.113556.1.4.314
NAME 'rpcNsTransferSyntax'
EQUALITY caseIgnoreListMatch
SYNTAX directoryString
USAGE userApplications
)
6. Usage Model
Instantiating an rpcGroup, rpcProfile, or RPCServer object and
any necessary child objects (e.g. rpcServerElement or
rpcProfileElement) can create any RPC entry type. Searching is
simplified because there is a well-known set of object classes
and attributes for each entry type.
A group entry contains the rpcNsGroup property listing the
entries in the group. Each group is a single object and can be
retrieved in a single operation. An rpcGroup object may have
rpcNsObjectID present - the list of object ID's, if present, are
explicitly stored and retrieved by applications and are not used
by the NSI provider in locating rpcNsGroup objects.
A profile entry consists of an rpcProfile container with one or
more rpcProfileEntry objects as children, one for each priority
level defined. The complete profile is retrieved in a single
operation by performing a single-level LDAP search for objects of
class rpcProfileElement rooted at the rpcProfile entry.
A server entry consists of an rpcServer container with one or
more rpcServerElement objects as children. The complete entry
is retrieved in a single operation by performing a single-level
LDAP search for objects of class rpcServerElement rooted at the
rpcProfile entry. The NSI provider creates a new
rpcServerElement entry when the interface and transfer syntax
provided by the caller do not match an existing rpcServerElement
in the named server entry. If a matching rpcServerElement
exists, the NSI provider updates it with the string bindings
provided by the caller.
Judd, Thatte, Leach, Hopkins [Page 9]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
This schema allows many discrete rpcServerElement objects to be
stored in a given entry. This avoids a number of problems in
trying to store multiple interfaces with their versions and
transfer syntaxes in a single entry while providing convenient
access and searching via LDAP. Indexing the Interface ID and
Object UUID's reduces the performance cost for retrieving
multiple objects.
6.1. DCE Relative Names
DCE RPC allows names presented to the RPC Name Service Interface
to be absolute or relative. An absolute name contains the full DN
of the entry in question. A relative name is relative to the DCE
Cell where the name is stored. The full DN is the DN of the cell
with the relative name appended. When using an LDAP directory to
store RPC entries as defined by this schema, the implementation of
relative names is implementation dependent, but should be
consistent. A suggested approach is the creation of a container
at the root of the namespace (e.g. directly below the first
instantiated object, such as Organization or organizationalUnit)
called RpcServices, which forms the root for 'cell-relative'
names.
7. Authors' Addresses
Steven G. Judd
Microsoft Corporation
1 Microsoft Way
Redmond, WA. 98053
USA
e-mail: stevenju@microsoft.com
Paul Leach
Microsoft Corporation
1 Microsoft Way
Redmond, WA. 98053
USA
e-mail: paulle@microsoft.com
Satish Thatte
Microsoft Corporation
1 Microsoft Way
Redmond, WA. 98053
USA
e-mail: satisht@microsoft.com
Judd, Thatte, Leach, Hopkins [Page 10]
Internet Draft Schema for Storing RPC Entries 28-Feb-1997
William S. Hopkins
Hewlett-Packard Corporation
300 Apollo Drive
Chelmsford, MA. 01824
e-mail: hopkins@apollo.hp.com
8. Bibliography
[1] W. Yeong, T. Howes, S. Kille, 'Lightweight Directory Access
Protocol', RFC 1777, March 1995,
<URL:ftp://ds.internic.net/rfc/rfc1777.txt>
[2] M. Wahl, T. Howes, S. Kille, et al. "Lightweight Directory
Access Protocol (Version 3)",
INTERNET-DRAFT <draft-ietf-asid-ldapv3-protocol-04.txt>,
February 1997.
[3] M. Wahl, A. Coulbeck, T. Howes, S. Kille, 'Lightweight
Directory Access Protocol: Standard and Pilot Attribute
Definitions',
INTERNET DRAFT <draft-ietf-asid-ldapv3-attributes-03.txt>
October 1996
[4] The Directory: Selected Attribute Types. ITU-T Recommendation
X.520, 1993.
[5] The Directory: Selected Object Classes. ITU-T Recommendation
X.521, 1993.
Judd, Thatte, Leach, Hopkins [Page 11]
| PAFTECH AB 2003-2026 | 2026-04-22 23:31:18 |