<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">


<?rfc toc="yes" ?>
<?rfc tocindent="no" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>

<rfc category="std" ipr="trust200902" docName="draft-ietf-nfsv4-multi-domain-fs-reqs-01">

  <front>
    <title abbrev="Multi NFSv4 Domain">
      Multiple NFSv4 Domain Namespace Deployment Guidelines
    </title>

    <author initials='W.A.' surname="Adamson" fullname='William A. (Andy) Adamson'>
      <organization>NetApp</organization>
        <address>
          <email>andros@netapp.com </email>
        </address>
    </author>

    <author initials='N.' surname="Williams" fullname='Nicolas Williams'>
      <organization>Cryptonector</organization>
      <address>
        <email>nico@cryptonector.com</email>
      </address>
    </author>
    <date/>
    <area>Internet </area>
    <workgroup>NFSv4 Working Group</workgroup>
    <abstract>

      <t>
        This document describes administrative constraints to the deployment
        of the NFSv4 protocols required for the construction of an NFSv4 file
        system namespace supporting the use of multiple NFSv4 domains and
        utilizing multi-domain capable file systems. Also described are
        administrative constraints to name resolution and security services
        appropriate to such a system. Such a namespace is a suitable way to
        enable a Federated File System supporting the use of multiple NFSv4
        domains.
      </t>
    </abstract>
    <note title="Requirements Language">
      <t>
        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 <xref target="RFC2119"/>.
      </t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>
        An NFSv4 domain is defined as a set of users, groups and computers
        running <xref target="I-D.ietf-nfsv4-rfc3530bis">NFSv4.0</xref> and
        <xref target="RFC5661">NFSv4.1</xref> (hereafter referred to
        as NFSv4) protocols identified by an NFSv4 domain name.  
      </t>

      <t>
        The <xref target="RFC5716">Federated File System (FedFS)</xref>
        describes the requirements and administrative tools to construct
        a uniform NFSv4 file server based namespace that is capable of
        spanning a whole enterprise and that is easy to manage.
      </t>

      <t>
        The FedFS is the standardized method of constructing and
        administrating an enterprise wide NFSv4
        filesystem, and so is referenced in this document.
        The issues with multiple NFSv4 domain file systems
        described in this document apply to all multiple NFSv4 domain file
        systems, be they run as a FedFS or not.
      </t>

      <t>
        Stand-alone NFSv4 domains can be run in many ways. 
        While a FedFS can be run within all stand-alone NFSv4
        domain configurations some of these
        <xref target="StandAlone">configurations</xref>
        are not compatible with joining a multiple NFSv4 domain FedFS namespace.
      </t>

      <t>
        Multi NFSv4 domain file systems require support for
        global identities in name services, security services,
        and in the exporting of on-disk local identity representation.
        Many of the
        stand-alone NFSv4 domain deployments do not provide full
        support for global identities. 
      </t>

      <t>
        This document describes administrative constraints to the deployment
        of the NFSv4 protocols required for the construction of an NFSv4 file
        system namespace supporting the use of multiple NFSv4 domains and
        utilizing multi-domain capable file systems. Also described are
        administrative constraints to name resolution and security services
        appropriate to such a system. Such a namespace is a suitable way to
        enable a Federated File System supporting the use of multiple NFSv4
        domains.
      </t>
      
    </section>  <!--Introduction --> 

    <section title="Terminology">
      <t>
        <list style="hanging">
          <t> 
            Name Service: provides the mapping between
            {NFSv4 domain, group or user name} and {NFSv4 domain, local ID},
	    as well as the mapping between {security principal} and
            {NFSv4 domain, local ID} via lookups.
            Can be applied to local or remote domains. Often provided
            by a Directory Service such as LDAP.
          </t>
          <t>
            Domain: This term is used in multiple contexts where
            it has different meanings. Here we provide specific
            definitions used in this document.

          <list style="hanging">
            <t>
              DNS domain: a set of computers, services, or any
              internet resource identified by an
              <xref target="RFC1034">DNS domain name</xref>.
            </t>
            <t>
              Security realm or domain: a set of configured
              security providers, users, groups, security roles,
              and security policies running a single security
              protocol and administered by a single
              entity, for example a Kerberos realm.
            </t>
            <t>
              NFSv4 domain: a set of users, groups, and
              computers running NFSv4 protocols
              identified by a unique NFSv4
              domain name. See <xref target="RFC5661"/> Section
              5.9 "Interpreting owner and owner_group".
            </t>
            <t>
              Multi-domain: In this document this always refers
              to multiple NFSv4 domains.
            </t>
            <t>
              FedFS domain: A file namespace that can cross
              multiple shares on multiple file servers using
              file-access protocols such as NFSv4.  A FedFS
              domain is typically a single administrative entity,
              and has a name that is similar to a DNS domain name.
              Also known as a Federation.
            </t>
            <t>
              Administrative domain: a set of users, groups,
              computers, and services administered by a single
              entity. Can include multiple DNS domains, NFSv4
              domains, security domains, and FedFS domains.
            </t>
          </list>
          </t>
          <t>
            Local representation of identity: an object such as
            <xref target="RFC2307"> a uidNumber (UID) or gidNumber (GID)</xref>,
            a <xref target="CIFS">Windows Security Identifier (SID)</xref>,
            or other such representation of a user or a group
            of users on-disk in a file system.
          </t>

          <t>
            Global identity: An on-the-wire globally unique form of identity
            that can be mapped to a local representation. For example, the
            NFSv4 name@domain or the Kerberos principal@REALM.
          </t>

          <t>
            Multi-domain capable filesystem:
            A local filesystem that uses a local ID form that can represent
            identities from both local and remote domains. For example, an
            SSID based local ID form where the SSID contains both a domain
            and a user or group component.
          </t>

          <t>
            Principal: an RPCSEC_GSS authentication identity.
            Usually, but not always, a user; rarely, if ever,
            a group; sometimes a host or server.
          </t>

          <t> 
            Authorization Context: A collection of information
            about a principal such as username, userID,
            group membership, etcetera used in authorization
            decisions. 
          </t>

          <t>
            Stringified UID or GID: NFSv4 owner and group
            strings that consist of decimal numeric values with no
            leading zeros, and which do not contain an '@' sign.
            See <xref target="RFC5661">
            Section 5.9 "Interpreting owner and owner_group"</xref>.
          </t>
        </list>
      </t>
    </section>  <!--Terminology -->

    <section anchor="v4map" title="NFSv4 Server Identity Mapping">
      <t> 
        NFSv4 servers deal with two kinds of identities: authentication
        identities (referred to here as "principals") and
        authorization identities ("users" and "groups" of
        users).  NFSv4 supports multiple authentication methods,
        each authenticating an "initiator principal" (typically
        representing a user) to an "acceptor principal" (always
        corresponding to the NFSv4 server).  NFSv4 does not prescribe
        how to represent authorization identities on file
        systems.  All file access decisions constitute
        "authorization" and are made by NFSv4 servers using
        authorization context information and file metadata related
        to authorization, such as a file's access control list (ACL).
      </t>
      <t>
        NFSv4 servers therefore must perform two kinds of mappings:

        <list style="numbers">
          <t>
            Auth-to-authz: A mapping between the authentication identity and the
            authorization context information.
          </t>
          <t>
            Wire-to-disk: A mapping between the on-the-wire authorization
            identity representation and the on-disk authorization
            identity representation.
          </t>
        </list>
      </t>

      <t>
        A Name Service such as LDAP often provides these mappings.
      </t>

      <t>
        Many aspects of these mappings are entirely implementation
        specific, but some require multi-domain capable name resolution
        and security services in order to interoperate in a
        multiple NFSv4 domain file system.
      </t>

      <t>
       NFSv4 servers use these mappings for: 

        <list style="numbers">
          <t>
            File access: Both the auth-to-authz and the wire-to-disk mappings
             may be required for file access decisions.
          </t>

          <t>
            Meta-data setting and listing: The auth-to-authz mapping is
            usually required to service file metadata setting or
            listing requests (such as ACL or unix permission setting or
            listing) as NFSv4 uses the name@domain on-the-wire identity
            representation which usually
            differs from the exported on-disk identity representation.
          </t>
        </list>
      </t>

    </section>  <!-- NFSv4 Server Identity Mapping --> 

    <section anchor="StandAlone" title="Stand-alone NFSv4 Domain Deployment Examples">
      <t>
        In order to service as many environments as possible, the NFSv4 protocol
        is designed to allow administrators freedom to configure their NFSv4
        domains as they please. 
      </t>

      <t>
        Stand-alone NFSv4 domains can be run in many ways.
        Here we list some stand-alone NFSv4 domain deployment
        examples focusing on the NFSv4 server's use of 
        <xref target="v4map">name service mappings</xref> 
        and security services deployment
        to demonstrate the need for some multiple NFSv4 domain constraints
        to the NFSv4 protocol, name service configuration, and security service
        choices.
      </t>

      <t>
        Because all on-disk identities participating in a stand-alone
        NFSv4 domain belong to the same NFSv4 domain, stand-alone
        NFSv4 domain deployments
        have no requirement for exporting multi-domain capable file systems.
      </t>

      <t>
        These examples are for a NFSv4 server exporting a 32bit UID/GID
        based file system, a typical deployment.
        These examples are listed in the order of increasing NFSv4
        administrative complexity.
      </t>
      <section anchor="sys-string" title="AUTH_SYS with Stringified UID/GID">
        <t> 
          This example is the closest NFSv4 gets to being run as NFSv3.
        </t> 

        <t> 
          File access: The AUTH_SYS RPC credential provides a UID as the
          authentication identity, and a list of GIDs as authorization
          context information.
          File access decisions require no name service interaction 
          as the on-the-wire and on-disk representation are the same and the
          auth-to-authz UID and GID authorization context information is
          provided in the RPC credential.
        </t> 

        <t> 
          Meta-data setting and listing: When the NFSv4 clients and servers
          implement a stringified UID/GID
          scheme, where a stringified UID or GID is used for the NFSv4
          name@domain on-the-wire identity, then a name service is not
          required for file metadata listing as the UID or GID
          can be constructed from the stringified form on the fly by the server.
        </t> 
      </section> <!-- AUTH_SYS with Stringified UID/GID -->

      <section anchor="sys-nostring" title="AUTH_SYS with name@domain">
        <t> 
          The next level of complexity is to not use a stringified UID/GID
          scheme for file metadata listing.
        </t> 

        <t> 
          File access: This is the same as in <xref target="sys-string"/>.
        </t> 

        <t> 
          Meta-data setting and listing: The NFSv4 server will need to
          use a name service for the wire-to-disk mappings to map between
	  the on-the-wire name@domain syntax and the on-disk UID/GID
          representation.  Often, the NFSv4 server will use the nsswitch
          interface for these mappings.
          A typical use of the nsswitch name service interface uses 
          no domain component, just the <xref target="RFC2307"> uid attribute
          </xref> (or login name) as the name component. This is no issue in a
          stand-alone NFSv4
          domain deployment as the NFSv4 domain is known to the NFSv4 server
          and can combined with the login name to form the name@domain syntax
          after the return of the name service call.
        </t> 
      </section> <!-- AUTH_SYS with name@domain -->

      <section anchor="gss-nostring" title="RPCSEC_GSS with name@domain">
        <t> 
          This final example adds the complexity of RPCSEC_GSS with the
          Kerberos 5 GSS security mechanism.
        </t> 
        <t> 
          File Access: The RPCSEC_GSS Kerberos credential provides a
          principal@REALM name
          as the authentication identity, and (as of this writing) no
          authorization context information.
          File access decisions therefore require a wire-to-disk mapping
          of the principal@REALM to a UID, and an auth-to-authz mapping
          to obtain the list of GIDs as the authorization context.
        </t> 

        <t> 
          Deployments can use the nsswitch name service interface for the
          principal@REALM to UID mapping by stripping off the REALM portion.
          This requires that the principal portion of the principal@REALM
          matches the <xref target="RFC2307">uid attribute </xref> (or
          login name) of the user.
        </t> 

        <t> 
          Meta-data setting and listing: This is the same as in
          <xref target="sys-nostring"/>.
        </t> 
      </section> <!-- RPCSEC_GSS with name@domain -->
    </section> <!-- Stand-alone NFSv4 Domain Deployment Exmamples -->

    <section title="Multi-domain Constraints to the NFSv4 Protocol">
      <t>
        Joining NFSv4 domains under a single file
        namespace imposes slightly on the NFSv4 administration freedom. 
        Here we describe the required constraints.
      </t>

      <section anchor="nameconstraints" title="Name@domain Constraints">
        <t> 
          NFSv4 uses a syntax of the form "name@domain" as the
          on wire representation of the "who" field of an NFSv4 
          access control entry (ACE)
          for users and groups.  This design provides a level of
          indirection that allows NFSv4 clients and servers
          with different internal representations of authorization
          identity to interoperate even when referring to authorization
          identities from different NFSv4 domains.
        </t>

        <t>
          Multiple NFSv4 domain capable sites need to meet the following
          requirements in order to ensure that NFSv4 clients
          and servers can map between name@domain and internal
          representations reliably.
          While some of these constraints are basic assumptions in 
          <xref target="I-D.ietf-nfsv4-rfc3530bis">NFSv4.0</xref> and
          <xref target="RFC5661">NFSv4.1</xref>, they need to
          be clearly stated for the multiple NFSv4 domain case.

          <list style="symbols">
            <t>
              The NFSv4 domain portion of name@domain 
              MUST be unique within the multiple NFSv4 domain
              namespace.  See <xref target="RFC5661"></xref>
              section 5.9 "Interpreting owner and owner_group"
              for a discussion on NFSv4 domain configuration.
            </t>
            <t>
              The name portion of name@domain MUST be unique
              within the specified NFSv4 domain.
            </t>
            <t>
              Every local representation of a user and of a
              group MUST have a canonical name@domain, and it
              must be possible to return the canonical
              name@domain for any identity stored on disk, at
              least when required infrastructure servers (such
              as name services) are online.
            </t>
        </list>
        </t>

        <t>
          Due to UID and GID collisions, stringified UID/GIDs MUST NOT be
          used in a multiple NFSv4 domain file system.
        </t>

        <t>
          Note that for stand-alone NFSv4 domains it does not matter if the
          choice of the NFSv4 domain name is replicated by another
          stand-alone NFSv4 domain deployment.
          Indeed, if a stringified UID/GID scheme is used, or
          just UNIX mode bits are used (NFSv4 ACLs
          are not set or listed) and the simple nsswitch interface that strips
          the @domain and the @REALM is used, then the domain portion of
          name@domain can be ignored, and even be different for each client
          and server in the domain.
        </t>

        <section title="NFSv4 Domain and DNS Services">
          <t>
            Here we address the relationship between NFSv4 domain name and
            DNS domain name in a multiple NFSv4 domain deployment.
          </t>

          <t>
            The definition of an NFSv4 domain name needs clarification to work
            in a multiple NFSv4 domain file system namespace.
            <xref target="RFC5661">Section 5.9</xref> loosely
            defines the NFSv4 domain name as a DNS domain name.
            This loose definition for the NFSv4 domain is a good one, as
            DNS domain names are globally unique.
            As noted above in <xref target="nameconstraints"/>, any choice of
            NFSv4 domain name can work within a stand-alone NFSv4 domain
            deployment whereas the NFSv4 domain is required to be unique
            in a multiple NFSv4 domain deployment.
          </t>

          <t>
            A typical configuration is that there is a single NFSv4 domain that
            is served by a single DNS domain. In this case the NFSv4 domain name
            can be the same as the DNS domain name.
          </t>

          <t>
            An NFSv4 domain can span multiple DNS domains. In this case,
            one of the DNS domain names can be chosen as the NFSv4 domain name.
          </t>

          <t>
            Multiple NFSv4 domains can also share a DNS domain. In this case,
            only one of the NFSv4 domains can use the DNS domain name, the
            other NFSv4 domains must choose another unique NFSv4 domain name.
          </t>
        </section> <!-- NFSv4 Domain and DNS Services -->

        <section title="NFSv4 Domain, Name Service, and Domain Aware File Systems ">
          <t>
            As noted above in <xref target="nameconstraints"/>, 
            each name@domain is unique across the multiple NFSv4 domain
            namespace,
            and maps to a local representation of ID in each NFSv4 domain. This
            means that each NFSv4 domain has a single name resolution service
            exporting the NFSv4 domain local ID namespace.
          </t>

          <t>
	   An NFSv4 domain administrator that wants to give NFSv4 local file 
           access to a remote user from a remote NFSv4 domain
           needs to create a local ID for the remote user which can then be
           assigned on-disk and used for local access decisions.
           Since the local ID for the remote user must be able to be mapped to
           a name@remote-domain, only multi-domain capable file systems can
           be exported in a multiple NFSv4 domain namespace.
          </t>

          <t>
           We note that many file systems exported by NFSv4 use 32 bit POSIX
           UID and GIDs as a local ID form and as this local ID form has no
           domain component, these file systems are not domain aware
           and can not participate in a multiple NFSv4 domain namespace.
           There are ways to overcome this
           deficiency, but these practices are beyond the scope of this
           document. 
          </t>
        </section> <!-- NFSv4 Domain, Name Services, and Domain Aware File Systems -->
      </section> <!-- name@domain constraint -->

      <section anchor="SecConstraints" title="RPC Security Constraints">

        <figure>
          <preamble>
            As described in <xref target="RFC5661"></xref>
            section 2.2.1.1 "RPC Security Flavors":
          </preamble>
            <artwork>
        NFSv4.1 clients and servers MUST implement RPCSEC_GSS.
        (This requirement to implement is not a requirement
        to use.) Other flavors, such as AUTH_NONE, and AUTH_SYS,
        MAY be implemented as well.
            </artwork>
        </figure>
        <t>
          The underlying RPCSEC_GSS security mechanism used in a
          multiple NFSv4 domain namespace is REQUIRED to employ a method
          of cross NFSv4 domain trust so that a principal from a security
          service in one NFSv4 domain can be authenticated in another
          NFSv4 domain that uses a security service with the same security
          mechanism.  Kerberos, and
          <xref target="I-D.zhu-pku2u">PKU2U </xref>
          are examples of such security services.
        </t>
        <t>
          The AUTH_NONE security flavor can be useful in a multiple NFSv4 domain
          namespace to grant universal access to public data without
          any credentials.
        </t>
        <t>
          The AUTH_SYS security flavor uses a host-based
          authentication model where the weakly authenticated
          host (the NFSv4 client) asserts the user's authorization
          identities using small integers, <xref target="RFC2307">
          uidNumber, and gidNumber </xref>, as user and group identity
          representations.  Because this authorization ID representation
          has no domain component, AUTH_SYS can only be
          used in a namespace where all NFSv4 clients and servers share
          an <xref target="RFC2307"/> name service.  A shared
          name service is required because uidNumbers and
          gidNumbers are passed in the RPC credential; there is no
          negotiation of namespace in AUTH_SYS.  Collisions can
          occur if multiple name services are used, so
          AUTH_SYS MUST NOT be used in a multiple NFSv4 domain file system.
        </t>
        <section title="NFSv4 Domain and Security Services">
          <t>
           As noted above in <xref target="SecConstraints"/>,
           caveat AUTH_NULL, multiple NFSv4 domain security services are
           RPCSEC_GSS based with the Kerberos 5 security mechanism
           being the most commonly (and as of this writing, the only)
           deployed service. 
          </t>

          <t>
           A single Kerberos 5 security service per NFSv4 domain with
           the upper case NFSv4 domain name as the Kerberos 5 REALM name
           is a common deployment.
          </t>

          <t>
           Multiple security services per NFSv4 domain is allowed, and
           brings the issue of mapping multiple Kerberos 5 principal@REALMs
           to the same local ID. Methods of achieving this are beyond the
           scope of this document.
          </t>
        </section> <!--  NFSv4 Domain and Security Services-->
      </section> <!-- RPC Security Constraints -->

    </section> <!-- Multi-domain Constraints to the NFSv4 Protocol -->

    <section anchor="AuthResolution" title="Resolving Multi-domain Authorization Information">
      <t>
        When an RPCSEC_GSS principal is seeking access to files on an NFSv4
	server, after authenticating the principal, the server must obtain
	in a secure manner the principal's authorization context
        information from
	an authoritative source such as the name service in the principal's
	NFSv4 domain.
      </t>
      <t>
        In the stand-alone NFSv4 domain case where the principal is
        seeking access to files on an NFSv4 server in the principal's
        home NFSv4 domain, the server administrator has knowledge of the local
	policies and methods for obtaining the principal's authorization
	information and the mappings to local representation of identity
        from an authoritative source.
	E.g., the administrator can configure secure access to the local NFSv4
	domain name service.
      </t>
      <t>
        In the multiple NFSv4 domain case where a principal is seeking access
        to files on an NFSv4 server not in the principal's home NFSv4 domain,
	the server is REQUIRED to obtain in a secure manner the principal's
        authorization
        context information from an authoritative source. In this case
        there is no assumption of:
        <list style="symbols">
          <t>
	    Remote name service configuration knowledge
	  </t>
          <t>
	    The syntax of the remote authorization context information
	    presented to the NFSv4 server by the remote name service
	    for mapping to a local representation.
	  </t>
	</list>
      </t>

      <t>
        There are several methods the NFSv4 server can use to obtain the
	NFSv4 domain authoritative authorization information for a
	remote principal from an authoritative source.
        While any detail is beyond the scope of this document,
        some general methods are listed here.

	<list style="numbers">
          <t>
              A mechanism specific GSS-API authorization payload
              containing credential authorization data such as 
              a <xref target="PAC"> "privilege attribute
              certificate" (PAC) </xref> or a
              <xref target="I-D.sorce-krbwg-general-pac"> "general
              PAD" (PAD) </xref>.
	      This is the preferred method as the payload is delivered
	      as part of GSS-API authentication, avoids requiring
	      any knowledge of the remote authoritative service
              configuration, and its syntax is well known.
          </t>
          <t>
              When there is a security agreement between the local and
	      remote NFSv4 domain name services plus regular update data
              feeds, the NFSv4 server local NFSv4 domain name service can
	      be authoritative for principal's in the remote NFSv4 domain.
	      In this case, the NFSv4 server makes a query to
	      it's local NFSv4 domain name service just as it does when
	      servicing a local domain principal. While this requires detailed
	      knowledge of the remote NFSv4 domains name service, the
	      authorization context information presented to the NFSv4 server
	      is in the same form as a query for a local principal.
          </t>
          <t>
              An authenticated direct query from the NFSv4 server to the
              principal's NFSv4 domain authoritative name service.
              This requires the NFSv4 server to have detailed
              knowledge of the remote NFSv4 domain's authoritative
              name service and detailed knowledge of the syntax of the resultant
	      authorization context information.
          </t>
	</list>
      </t>
    </section> <!--Resolving Multi-domain Authorization Information -->

    <section title="Stand-alone Examples and Multiple NFSv4 Domain Namespaces">
      <t>
	Revisiting the <xref target="StandAlone"> stand-alone </xref>
        NFSv4 domain deployment examples, we note that due to the use
        of AUTH_SYS, neither
        <xref target="sys-string"/> nor <xref target="sys-nostring"/> 
        configurations are suitable for multiple NFSv4 domain deployments. 
      </t>

      <t>
        The <xref target="gss-nostring"/> configuration example can
        participate in a multiple NFSv4 domain namespace deployment if:

        <list style="symbols">
          <t>
            The NFSv4 domain name is unique across the namespace.
          </t>

          <t>
            All exported file systems are multi-domain capable.
          </t>

          <t>
            A secure method is used to resolve remote NFSv4 domain principals
            authorization information from an authoritative source.
          </t>
        </list>
      </t>
    </section> <!-- Stand-alone Examples and Multi Domain NFSv4 Namespaces -->

    <section title="Security Considerations">
      <t>
        There are no security considerations introduced by this document
        beyond those described in
        <xref target="I-D.ietf-nfsv4-rfc3530bis">NFSv4.0</xref> and
        <xref target="RFC5661">NFSv4.1</xref>.
      </t>
    </section> <!-- Security Considerations -->

  </middle>
  <back>
    <references title="Normative References">

      <reference anchor='RFC1034'>
        <front>
          <title>DOMAIN NAMES - CONCEPTS AND FACILITIES</title>
          <author initials="P." surname="Mockapetris" fullname="P. Mockapetris">
            <organization>ISI</organization>
          </author>
          <date year="1987" month="November" />
        </front>
          <seriesInfo name='RFC' value='1034' />
          <format type='TXT' octets='422317' target='ftp://ftp.isi.edu/in-notes/rfc1034.txt' />
        </reference>

      <reference anchor='RFC2119'>
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="S. Bradner">
            <organization>Harvard University</organization>
          </author>
          <date year="1997" month="March" />
        </front>
          <seriesInfo name='RFC' value='2119' />
          <format type='TXT' octets='422317' target='ftp://ftp.isi.edu/in-notes/rfc2119.txt' />
      </reference>

      <reference anchor='RFC2307'>
        <front>
          <title> An Approach for Using LDAP as a Network Information Service
          </title>
          <author initials="L." surname="Howard" fullname="L. Howard">
            <organization>Independent Consultant</organization>
          </author>
          <date year="1998" month="March" />
        </front>
          <seriesInfo name='RFC' value='2307' />
          <format type='TXT' octets='422317' target='ftp://ftp.isi.edu/in-notes/rfc2307.txt' />
      </reference>

      <reference anchor='I-D.ietf-nfsv4-rfc3530bis'>
        <front>
          <title>Network File System (NFS) version 4 Protocol</title>
          <author initials="T." surname="Haynes" fullname="T. Haynes">
            <organization>NetApp</organization>
          </author>
          <author initials="D." surname="Noveck" fullname="D. Noveck">
            <organization>EMC Corporation</organization>
          </author>
          <date year="2013" month="February" />
        </front>
        <seriesInfo name="draft-ietf-nfsv4-rfc3530bis-25" value="(Work In Progress)"/>
      </reference>

      <reference anchor='RFC5661'>
        <front>
          <title>Network File System (NFS) Version 4 Minor Version 1 Protocol</title>
          <author initials="S." surname="Shepler" fullname="S. Shepler">
            <organization>Storspeed, Inc.</organization>
          </author>
          <author initials="M." surname="Eisler" fullname="M. Eisler">
            <organization>NetApp</organization>
          </author>
          <author initials="D." surname="Noveck" fullname="D. Noveck">
            <organization>NetApp</organization>
          </author>
          <date year="2010" month="January"/>
        </front>
        <seriesInfo name="RFC" value="5661"/>
        <format type="TXT" octets="600988"
              target="ftp://ftp.isi.edu/in-notes/rfc5661.txt"/>
      </reference>

      <reference anchor='RFC5716'>
        <front>
          <title>Requirements for Federated File Systems
          </title>
          <author initials="J." surname="Lentini" fullname="J. Lentini">
            <organization>NetApp
            </organization>
          </author>
          <author initials="C." surname="Everhart" fullname="C. Everhart">
            <organization>NetApp
            </organization>
          </author>
          <author initials="D." surname="Ellard" fullname="D. Ellard">
            <organization> BBN Technologies
            </organization>
          </author>
          <author initials="R." surname="Tewari" fullname="R. Tewari">
            <organization> IBM Almaden
            </organization>
          </author>
          <author initials="M." surname="Naik" fullname="M. Naik">
            <organization> IBM Almaden
            </organization>
          </author>
          <date year="2010" month="January"/>
        </front>
        <seriesInfo name="RFC" value="5716"/>
        <format type="TXT" octets="600988"
              target="ftp://ftp.isi.edu/in-notes/rfc5716.txt"/>
      </reference>

      <reference anchor='I-D.zhu-pku2u'>
        <front>
          <title>Public Key Cryptography Based User-to-User Authentication - (PKU2U)
          </title>
          <author initials="L." surname="Zhu" fullname="L. Zhu">
            <organization>Microsoft</organization>
          </author>
          <author initials="J." surname="Altman" fullname="J. Altman">
            <organization>Sun</organization>
          </author>
          <author initials="N." surname="Williams" fullname="N. Williams">
            <organization>Sun</organization>
          </author>
          <date year="2008" month="November" />
        </front>
        <seriesInfo name="draft-zhu-pku2u-09" value="(Work In Progress)"/>
      </reference>

      <reference anchor='I-D.sorce-krbwg-general-pac'>
        <front>
          <title>A Generalized PAC for Kerberos V5
          </title>
          <author initials="S." surname="Sorce" fullname="S. Sorce">
            <organization>Red Hat</organization>
          </author>
          <author initials="T." surname="Yu" fullname="T. Yu">
            <organization>MIT Kerberos Consortium</organization>
          </author>
          <author initials="T." surname="Hardjono" fullname="T. Hardjono">
            <organization>MIT Kerberos Consortium</organization>
          </author>
          <date year="2011" month="June" />
        </front>
        <seriesInfo name="draft-ietf-krb-wg-general-pac-02" value="(Work In Progress awaiting merge with other document )"/>
      </reference>

      <reference anchor="PAC">
        <front>
          <title>
            Utilizing the Windows 2000 Authorization Data in
            Kerberos Tickets for Access Control to Resources
          </title>
          <author initials="J. " surname="Brezak" fullname="J.Brezak">
            <organization>Microsoft Corporation</organization>
          </author>
          <date month="October" year="2002" />
        </front>
      </reference>


      <reference anchor="CIFS">
        <front>
          <title>
            [MS-CIFS] — v20130118 Common Internet File System (CIFS) Protocol
          </title>
          <author>
            <organization>Microsoft Corporation</organization>
          </author>
          <date month="January" year="2013" />
        </front>
      </reference>

    </references>

    <section title="Acknowledgments">
      <t>
       Andy Adamson would like to thank NetApp, Inc. for its funding of his
       time on this project.
      </t>
      <t>
       We thank Chuck Lever, Tom Haynes, Brian Reitz, Bruce Fields, and David
       Noveck for their review.
      </t>
  </section>

  </back>
</rfc>
