RFC 8000
Requirements for NFSv4 Multi-Domain Namespace Deployment
Requirements for NFSv4 Multi-Domain Namespace Deployment π
- RFC number: 8000
- Authors: W. Adamson (NetApp) and N. Williams (Cryptonector) π
- Category: Standards Track π₯
- ISSN: 2070-1721
- Date: November 2016 πΈ
- Obsoletes and updates: the title block doesn't list anything this RFC obsoletes or updates β¨
Abstract β¨
okay so this doc lays out the requirements for deploying NFSv4 to build an NFSv4 file namespace when you've got multiple NFSv4 Domains going on π¦ to join one of these multi-domain file namespaces, the server must offer a multi-domain-capable file system and support RPCSEC_GSS for user authentication. in most cases, the server must also support identity-mapping services π
Status of This Memo π§
this is an Internet Standards Track document π
it's a product of the Internet Engineering Task Force (IETF). it represents the consensus of the IETF community, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication π for more on Internet Standards, check Section 2 of RFC 7841.
you can find the current status, any errata, and how to send feedback at http://www.rfc-editor.org/info/rfc8000 π
Copyright Notice π
Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved. π«Ά
this document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the date this document was published. please actually read these, because they spell out your rights and restrictions for this document π any Code Components pulled out of this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License.
Table of Contents π
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Federated File System . . . . . . . . . . . . . . . . . . . . 5
4. Identity Mapping . . . . . . . . . . . . . . . . . . . . . . 6
4.1. NFSv4 Server Identity Mapping . . . . . . . . . . . . . . 6
4.2. NFSv4 Client Identity Mapping . . . . . . . . . . . . . . 7
5. Stand-Alone NFSv4 Domain Deployment Examples . . . . . . . . 7
5.1. AUTH_SYS with Stringified UID/GID . . . . . . . . . . . . 7
5.2. AUTH_SYS with Name@domain . . . . . . . . . . . . . . . . 8
5.3. RPCSEC_GSS with Name@domain . . . . . . . . . . . . . . . 8
6. Multi-Domain Constraints to the NFSv4 Protocol . . . . . . . 9
6.1. Name@domain Constraints . . . . . . . . . . . . . . . . . 9
6.1.1. NFSv4 Domain and DNS Services . . . . . . . . . . . . 9
6.1.2. NFSv4 Domain and Name Services . . . . . . . . . . . 10
6.2. RPC Security Constraints . . . . . . . . . . . . . . . . 10
6.2.1. NFSv4 Domain and Security Services . . . . . . . . . 11
7. Stand-Alone Examples in an NFSv4 Multi-Domain Deployment . . 11
8. Resolving Multi-Domain Authorization Information . . . . . . 12
9. Security Considerations . . . . . . . . . . . . . . . . . . . 13
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.1. Normative References . . . . . . . . . . . . . . . . . . 14
10.2. Informative References . . . . . . . . . . . . . . . . . 15
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction π
okay so the NFSv4 protocols (NFSv4.0 [RFC7530], NFSv4.1 [RFC5661], and NFSv4.2 [RFC7862]) bring in the concept of an NFS Domain π
an NFSv4 Domain is basically a set of users and groups that use the NFSv4 name@domain user and group identification syntax with the same specified @domain β¨
older NFS versions, like NFSv3 [RFC1813], were super UNIX-centric. they used numeric user and group IDs for the uid3 and gid3 [RFC1813] file attributes, and for identity in the authsys_parms AUTH_SYS credential defined in the Open Network Computing (ONC) Remote Procedure Call (RPC) protocol [RFC5531]. ngl that's giving very local vibes π Section 6.1 of [RFC2624] points out that those UNIX-centric numeric IDs limit NFS to large local work groups. they also aren't unique across NFSv3 deployments, so they weren't built for Internet scaling, which means taking multiple naming domains and multiple naming mechanisms into account (see Section 6.2). the NFSv4 Domain's name@domain syntax is what unlocks that Internet scaling π it lets servers and clients translate between the external name@domain string and a local or internal numeric (or other identifier) form that fits what the implementation actually needs π₯
multi-domain deployments need unique identities across the deployment's name services and security services. they also need multi-domain file systems that can store identities from multiple NFSv4 Domains on disk π the name@domain syntax can give you those unique identities, which is what makes the NFSv4 multi-domain file namespace possible π¦
here's the other big upgrade: unlike earlier NFS versions, the NFSv4 protocols have a referral mechanism (Section 8.4.3 of [RFC7530]). that lets one server, or a set of servers, present a multi-server namespace covering file systems on several servers π§ it makes site-wide, organization-wide, or even truly global file namespaces possible π
so the NFSv4 protocols' name@domain syntax and referral mechanism, plus RPCSEC_GSS security mechanisms, are what make building an NFSv4 multi-domain file namespace possible π
this document lays out requirements for deploying the NFSv4 protocols to build an NFSv4 file namespace across multiple NFSv4 Domains. to join an NFSv4 multi-domain file namespace, the server must offer a multi-domain-capable file system and support RPCSEC_GSS [RFC2203] for user authentication. in most cases, the server must also support identity-mapping services π«Ά
1.1. Requirements Language π
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]. π
2. Terminology π
- NFSv4 Domain: a set of users and groups that use the NFSv4
name@domainuser and group identification syntax with the same specified@domainπ - Stand-alone NFSv4 Domain: a deployment of the NFSv4 protocols and NFSv4 file namespace in an environment with a single NFSv4 Domain β¨
- Local representation of identity: a representation of a user or group of users that can be stored persistently in a file system. usually it's the same form users and groups take inside internal server APIs. examples are numeric IDs like a uidNumber (UID), gidNumber (GID) [RFC2307], or a Windows Security Identifier (SID) [CIFS]. sometimes the ID space for users and groups overlaps, which means anyone using such an ID has to know ahead of time whether it's for a user or a group π
- Unique identity: an on-the-wire form of identity that's unique across an NFSv4 multi-domain namespace and can be mapped to a local representation. for example, the NFSv4
name@domainor the Kerberos principal [RFC4120] π - Multi-domain: in this document, "multi-domain" always refers to multiple NFSv4 Domains πΈ
- Multi-domain-capable file system: a local file system that uses a local ID form able to represent NFSv4 identities from multiple domains π
- Principal: an RPCSEC_GSS [RFC2203] authentication identity. it's usually, but not always, a user; rarely, if ever, a group; and sometimes a host or server π§
- Authorization Context: a collection of information about a principal, such as user name, userID, group membership, etc., used in authorization decisions π¦
- Stringified UID or GID: NFSv4 owner and group strings made of decimal numeric values with no leading zeros that don't contain an
'@'sign. see Section 5.9 of [RFC5661] π - Name Service: facilities that map {NFSv4 Domain, group, or user name} to the right local representation of identity. this also covers facilities that map a security principal to a local representation of identity. it can apply to unique identities or principals from local and remote domains. it's often provided by a Directory Service like the Lightweight Directory Access Protocol (LDAP) [RFC4511] π
- Name Service Switch (nsswitch): a facility that provides a bunch of sources for common configuration databases and name resolution mechanisms π
- FedFS: the Federated File System (FedFS) [RFC5716] describes the requirements and admin tools for building a uniform NFSv4 file-server-based namespace that can span a whole enterprise and is easy to manage π
- Domain: this term gets used in several contexts with different meanings. "NFSv4 Domain" and "multi-domain" are defined above π
- DNS domain: a set of computers, services, or any Internet resource identified by a DNS domain name [RFC1034] π
- 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 π
- 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 looks like a DNS domain name. also known as a "Federation" π§Ί
- Administrative domain: a set of users, groups, computers, and services administered by a single entity. it can include multiple DNS domains, NFSv4 Domains, security domains, and FedFS domains π°
3. Federated File System πΈ
the FedFS is the standardized way to build and administer an enterprise-wide NFSv4 file system, which is why it's referenced in this document π the requirements for multi-domain deployments described here apply to all NFSv4 multi-domain deployments, whether or not they run as a FedFS.
stand-alone NFSv4 Domain deployments can be set up in lots of ways π a FedFS can run inside all stand-alone NFSv4 Domain configurations, but some of those configurations (Section 5) aren't compatible with joining a multi-domain FedFS namespace π ββοΈ
4. Identity Mapping π¦
4.1. NFSv4 Server Identity Mapping β¨
okay so NFSv4 servers deal with two kinds of identities π«Ά: authentication identities (called "principals" here) and authorization identities ("users" and "groups" of users). NFSv4 supports multiple authentication methods, and each one authenticates an "initiator principal" (usually a user π) to an "acceptor principal" (which always corresponds to the NFSv4 server). NFSv4 doesn't prescribe how authorization identities get represented on file systems π€·ββοΈ. Every file access decision counts as "authorization," and NFSv4 servers make those calls using authorization context information and file metadata related to authorization, like a file's access control list (ACL) π .
NFSv4 servers may be required to do two kinds of mappings, depending on what authentication and authorization info is sent on the wire and what's stored in the exported file system. For example, if an authentication identity like a Kerberos principal gets sent along with authorization info like a "privilege attribute certificate" (PAC) [PAC], then mapping isn't required (see Section 8) β¨. Lowkey a glow-up!
- Auth-to-authz: A mapping between the authentication identity and the authorization context information.
- Wire-to-disk: A mapping between the on-the-wire authorization identity representation and the on-disk authorization identity representation.
A name service such as LDAP often provides these mappings π§.
Many aspects of these mappings are entirely implementation specific πΈ, but some need multi-domain-capable name resolution and security services in order to interoperate in a multi-domain environment.
NFSv4 servers use these mappings for:
- File access: Both the auth-to-authz and the wire-to-disk mappings may be required for file access decisions.
- Metadata 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. This mapping is needed because NFSv4 messages use identity representations of the form
name@domain, which normally differs from the server's local representation of identity π.
4.2. NFSv4 Client Identity Mapping π
A client setting the owner or group attribute will often need access to identity-mapping services. Why? Because APIs within the client specify the identity in a local form (e.g., UNIX using a UID/GID), so when stringified id's can't be used, the ID has to be converted into a unique identity form π.
A client obtaining values for the owner or group attributes will similarly need access to identity-mapping services π. The client API needs these attributes in a local form, as above, so name services need to be available to convert the unique identity into a local form. It's giving teamwork π«Ά.
Note that each of these situations happens because client-side APIs require a particular local identity representation. The need for mapping services wouldn't come up if clients could use the unique representation of identity directly π.
5. Stand-Alone NFSv4 Domain Deployment Examples π
The purpose of this section is to list some typical stand-alone deployment examples, so we can see why the required restraints on the NFSv4 protocol, name service configuration, and security service choices in an NFSv4 multi-domain environment (described in Section 6) are a thing π§.
Section 7 notes how these stand-alone deployment examples would need to change to join an NFSv4 multi-domain deployment π¦.
To serve as many environments as possible, the NFSv4 protocol lets administrators do whatever they want when configuring their NFSv4 Domains π . Stand-alone NFSv4 Domains can be run in lots of ways β¨.
These examples are for an NFSv4 server exporting a POSIX UID/GID-based file system, which is a typical deployment π. They're listed in order of increasing NFSv4 administrative complexity π.
5.1. AUTH_SYS with Stringified UID/GID π₯
This example is the closest NFSv4 gets to running as NFSv3, because there's no need for a name service for file metadata listing π.
File access: The AUTH_SYS RPC credential [RFC5531] provides a UID as the authentication identity, and a list of GIDs as authorization context information. File access decisions need no name service interaction, since the on-the-wire and on-disk representations are the same, and the auth-to-authz UID and GID authorization context information comes right in the RPC credential π.
Metadata setting and listing: When 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, a name service isn't needed for file metadata listing, because the server can construct the UID or GID from the stringified form on the fly π§.
5.2. AUTH_SYS with Name@domain π¦
Another option is to express identity using the form name@domain, instead of a stringified UID/GID scheme, for file metadata setting and listing π.
File access: This is the same as in Section 5.1.
Metadata setting and listing: The NFSv4 server will need a name service for the wire-to-disk mappings, so it can map between the on-the-wire name@domain syntax and the on-disk UID/GID representation π. The NFSv4 server will often use the nsswitch interface for these mappings π
. A typical use of the nsswitch name service interface uses no domain component, just the UID attribute [RFC2307] (or login name) as the name component. This is not an issue in a stand-alone NFSv4 Domain deployment, because the NFSv4 Domain is known to the NFSv4 server and can be combined with the login name to form the name@domain syntax after the name service call returns π«Ά.
5.3. RPCSEC_GSS with Name@domain π
RPCSEC_GSS uses Generic Security Service Application Program Interface (GSS-API) [RFC2743] security mechanisms to securely authenticate users to servers π. The most common mechanism is Kerberos [RFC4121] π.
This final example adds the use of RPCSEC_GSS with the Kerberos 5 GSS security mechanism π.
File Access: The forms of GSS principal names are mechanism specific. For Kerberos, they look like principal@REALM. Sometimes authorization context information is delivered along with authentication, but you can't count on that π. Authorization context information that isn't delivered with authentication has timely update considerations (i.e., generally it's not possible to get a timely update) π. So file access decisions need a wire-to-disk mapping of the GSS principal to a UID, plus an auth-to-authz mapping to get the list of GIDs as the authorization context π
.
Metadata setting and listing: This is the same as in Section 5.2.
6. Multi-Domain Constraints to the NFSv4 Protocol π
Joining NFSv4 Domains under a single file namespace puts a bit of a squeeze on NFSv4 administrative freedom π₯Ί. In this section, we describe the required constraints π.
6.1. Name@domain Constraints π
NFSv4 uses a syntax of the form "name@domain" (see Section 5.9 of [RFC7530]) as the on-the-wire representation of the "who" field of an NFSv4 access control entry (ACE) for users and groups π―. This design adds a layer of indirection that lets NFSv4 clients and servers with different internal representations of authorization identity interoperate, even when they're referring to authorization identities from different NFSv4 Domains π¦.
Multi-domain-capable sites need to meet the following requirements so NFSv4 clients and servers can map between name@domain and internal representations reliably π. Some of these constraints are basic assumptions in NFSv4.0 [RFC7530] and NFSv4.1 [RFC5661], but they need to be clearly stated for the multi-domain case π£.
- The NFSv4 Domain portion of
name@domainMUST be unique within the multi-domain namespace. See [RFC5661], Section 5.9 ("Interpreting owner and owner_group") for a discussion on NFSv4 Domain configuration. - The name portion of
name@domainMUST be unique within the specified NFSv4 Domain.
Due to UID and GID collisions, stringified UID/GIDs MUST NOT be used in a multi-domain deployment. This means that multi-domain-capable servers MUST reject requests that use stringified UID/GIDs. π¨
6.1.1. NFSv4 Domain and DNS Services π
Here we look at how the NFSv4 Domain name relates to the DNS domain name in a multi-domain deployment πΊοΈ.
The definition of an NFSv4 Domain name, the @domain portion of the name@domain syntax, needs clarifying to work in a multi-domain file system namespace π. [RFC5661], Section 5.9 loosely defines the NFSv4 Domain name as a DNS domain name. That loose definition is a good one, because DNS domain names are globally unique β¨. As noted in Section 6.1, any choice of NFSv4 Domain name can work within a stand-alone NFSv4 Domain deployment, whereas the NFSv4 Domain name is required to be unique across a multi-domain deployment π
.
A typical configuration is a single NFSv4 Domain served by a single DNS domain. In this case, the NFSv4 Domain name can be the same as the DNS domain name π.
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 π¦.
Multiple NFSv4 Domains can also share a DNS domain. In this case, only one of the NFSv4 Domains can use the DNS domain name, and the other NFSv4 Domains have to choose another unique NFSv4 Domain name π€.
6.1.2. NFSv4 Domain and Name Services π§
As noted in Section 6.1, each name@domain is unique across the multi-domain namespace and maps, on each NFSv4 server, to the local representation of identity used by that server ποΈ. Typically, this representation consists of an indication of the particular domain combined with the UID/GID corresponding to the name component π. To support this arrangement, each NFSv4 Domain needs a single name resolution service capable of converting the names defined within the domain into the corresponding local representation π«Άπ
6.2. RPC Security Constraints π
okay so [RFC5661] lays out the RPC security flavors in Section 2.2.1.1 ("RPC Security Flavors") and the big rule is this: NFSv4.1 clients and servers MUST implement RPCSEC_GSS. π«Ά But implementing it isn't the same as having to use it, so you're not stuck with it. Other flavors, like AUTH_NONE and AUTH_SYS, MAY be implemented too. β¨
The underlying RPCSEC_GSS GSS-API [RFC2203] security mechanism in a multi-domain namespace is REQUIRED to use a method of cross NFSv4 Domain trust. This means a principal from a security service in one NFSv4 Domain can get authenticated in another NFSv4 Domain, as long as that domain uses a security service with the same security mechanism. Kerberos is an example of a security service that does this. π₯
AUTH_NONE [RFC5531] is lowkey useful in a multi-domain deployment. It gives universal read-only access to public data with no credentials needed. πΈ
AUTH_SYS [RFC5531] is giving host-based authentication. The weakly authenticated host (the NFSv4 client) claims the user's authorization identities using small integers, uidNumber and gidNumber [RFC2307], as the user and group identity representations. π Here's the catch: this authorization ID has no domain component, so AUTH_SYS can only be used in a namespace where every NFSv4 client and server shares a name service as described in [RFC2307]. A shared name service is required because the uidNumbers and gidNumbers get passed in the RPC credential, and AUTH_SYS has no negotiation of namespace. π Collisions can happen if multiple name services are used, so AUTH_SYS MUST NOT be used in a multi-domain file system deployment. Not me getting that close to a collision. π
6.2.1. NFSv4 Domain and Security Services π
As noted in Section 6.2 about AUTH_NONE, multiple NFSv4 Domain security services are RPCSEC_GSS based. The most commonly deployed one is the Kerberos 5 security mechanism. As of this writing, it's the only one deployed, so it's the main character. π§
A really common setup is a single Kerberos 5 security service per NFSv4 Domain, where the upper case NFSv4 Domain name is used as the Kerberos 5 REALM name. π
Multiple security services per NFSv4 Domain are allowed, but that brings the need to map multiple Kerberos 5 principal@REALMs to the same local ID. π¦ The methods for doing that are beyond the scope of this document, so that's a problem for another day. π
7. Stand-Alone Examples in an NFSv4 Multi-Domain Deployment π
okay, so in this section we revisit the stand-alone NFSv4 Domain deployment examples from Section 5 and check what's stopping them from joining an NFSv4 multi-domain deployment. π
Here's the tea: because all on-disk identities in a stand-alone NFSv4 Domain belong to the same NFSv4 Domain, those deployments have no need to export multi-domain-capable file systems. β¨ If a stand-alone setup wants to join a multi-domain deployment, all three examples from Section 5 would need to export multi-domain-capable file systems. π
The first stand-alone example (described in Section 5.1) is a no-go for multi-domain deployment. It uses AUTH_SYS and stringified UID/GIDs, and that's a dealbreaker. π
The second example (described in Section 5.2) does use the name@domain syntax, which is the vibe. But it still uses AUTH_SYS, and that rules it out of a multi-domain deployment. π
The third example (described in Section 5.3) can join a multi-domain namespace deployment, but only if:
- The NFSv4 Domain name is unique across the namespace.
- All exported file systems are multi-domain capable.
- A secure method is used to resolve the remote NFSv4 Domain principal's authorization information from an authoritative source.
Being the one that can actually level up is so iconic. π
8. Resolving Multi-Domain Authorization Information π
okay so when an RPCSEC_GSS principal wants to access files on an NFSv4 server, the server SHOULD, after authenticating the principal, get the principal's authorization context information in a secure manner from an authoritative source. The name service in the principal's NFSv4 Domain is a good example. π«Ά
In the stand-alone NFSv4 Domain case, the principal is accessing files on an NFSv4 server in their home NFSv4 Domain. The server administrator knows the local policies and methods for getting the principal's authorization information, plus the mappings to the local representation of identity from an authoritative source. For example, the admin can set up secure access to the local NFSv4 Domain name service. π
In the multi-domain case, a principal is accessing files on an NFSv4 server that is not in their home NFSv4 Domain. The NFSv4 server may be required to contact the remote name service in the principal's NFSv4 Domain. In this case, there is no assumption of:
- Remote name service configuration knowledge.
- The syntax of the remote authorization context information presented to the NFSv4 server by the remote name service for mapping to a local representation.
There are several ways the NFSv4 server can get the NFSv4 Domain authoritative authorization information for a remote principal from an authoritative source. Detailing those methods is beyond the scope of this document, but here are some general ones. π¦
- A mechanism-specific GSS-API authorization payload with credential authorization data, like a "privilege attribute certificate" (PAC) [PAC] or a "principal authorization data" (PAD) [GEN-PAC]. This is the preferred method, and it's the MVP because the payload arrives as part of GSS-API authentication. It doesn't need any knowledge of the remote authoritative service configuration, and it has a well-known syntax. π
- When the local and remote NFSv4 Domain name services have a security agreement plus regular update data feeds, the NFSv4 server's local NFSv4 Domain name service can be authoritative for principals in the remote NFSv4 Domain. In this case, the NFSv4 server queries its local NFSv4 Domain name service just like it does for a local domain principal. This does require detailed knowledge of the remote NFSv4 Domain name service for the update data feeds, but the authorization context information is in the same form as a query for a local principal. β¨
- 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 resulting authorization context information. That's a lot of homework, bestie. π
9. Security Considerations π‘οΈ
this RFC talks about security all throughout. All the security considerations of the relevant protocols apply here too: NFSv4.0 [RFC7530], NFSv4.1 [RFC5661], RPCSEC_GSS [RFC2203], GSS-API [RFC4121], LDAP [RFC4511], Requirements for Federated FS [RFC5716], FedFS Namespace Database Protocol [RFC7532], FedFS Administration Protocol [RFC7533], and FedFS Security Addendum [SEC-ADD]. Please read them. Seriously. π
Authentication and authorization across administrative domains bring some security considerations. Most of them are handled elsewhere, but we're repeating a few here so nobody skips them: π
- latency in propagation of revocation of authentication credentials
- latency in propagation of revocation of authorizations
- latency in propagation of granting of authorizations
- complications in establishing a complete authorization context for users of a foreign domain (only parts may be available to servers)
- privacy considerations in a federated environment
Most of these are security considerations of the mechanisms used to authenticate users to servers and servers to users, and of the mechanisms used to evaluate a user's authorization context. π
Implementors might be tempted to assume that "realm" (or "issuer") and "NFSv4 Domain" are roughly the same thing. They are not. π¨ Configuration and/or lookup protocols (such as LDAP) and their associated schemas are generally required to evaluate a user principal's authorization context (see Section 8). In the simplest scheme, a server has access to a database that maps all known principal names to user names, and the authorization context can then be evaluated using operating system interfaces that deal in user names instead of principal names. π§
Clients may also need to evaluate a server's authorization context when they use labeled security [RFC7862]. For example, they might need to check whether the server is authorized to handle content at a given security level for the given client process subject label. π·οΈ
When the server accepts user credentials from more than one realm, it's really important to remember that the server must verify that the client it's talking to has a credential for the name the client presented to the server, and that the credential's issuer (that is, its realm) is allowed to issue it. Usually the security mechanism handles the service principal realm authorization function, but the implementor should check this anyway. π No skipping this one, periodt. π
10. References π
10.1. Normative References
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987,
<http://www.rfc-editor.org/info/rfc1034>.
[RFC1813] Callaghan, B., Pawlowski, B., and P. Staubach, "NFS
Version 3 Protocol Specification", RFC 1813,
DOI 10.17487/RFC1813, June 1995,
<http://www.rfc-editor.org/info/rfc1813>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC2203] Eisler, M., Chiu, A., and L. Ling, "RPCSEC_GSS Protocol
Specification", RFC 2203, DOI 10.17487/RFC2203, September
1997, <http://www.rfc-editor.org/info/rfc2203>.
[RFC2743] Linn, J., "Generic Security Service Application Program
Interface Version 2, Update 1", RFC 2743,
DOI 10.17487/RFC2743, January 2000,
<http://www.rfc-editor.org/info/rfc2743>.
[RFC4121] Zhu, L., Jaganathan, K., and S. Hartman, "The Kerberos
Version 5 Generic Security Service Application Program
Interface (GSS-API) Mechanism: Version 2", RFC 4121,
DOI 10.17487/RFC4121, July 2005,
<http://www.rfc-editor.org/info/rfc4121>.
[RFC4511] Sermersheim, J., Ed., "Lightweight Directory Access
Protocol (LDAP): The Protocol", RFC 4511,
DOI 10.17487/RFC4511, June 2006,
<http://www.rfc-editor.org/info/rfc4511>.
[RFC5661] Shepler, S., Ed., Eisler, M., Ed., and D. Noveck, Ed.,
"Network File System (NFS) Version 4 Minor Version 1
Protocol", RFC 5661, DOI 10.17487/RFC5661, January 2010,
<http://www.rfc-editor.org/info/rfc5661>.
[RFC7530] Haynes, T., Ed. and D. Noveck, Ed., "Network File System
(NFS) Version 4 Protocol", RFC 7530, DOI 10.17487/RFC7530,
March 2015, <http://www.rfc-editor.org/info/rfc7530>.
[RFC7862] Haynes, T., "Network File System (NFS) Version 4 Minor
Version 2 Protocol", RFC 7862, DOI 10.17487/RFC7862,
November 2016, <http://www.rfc-editor.org/info/rfc7862>.
10.2. Informative References β¨
okay so these are the bonus reads, bestie π they're not required to get the core picture, but they're the receipts behind the vibes π
- [CIFS] Microsoft Corporation, "[MS-CIFS]: Common Internet File System (CIFS) Protocol", MS-CIFS v20160714 (Rev 26.0), July 2016.
- [GEN-PAC] Sorce, S., Ed., Yu, T., Ed., and T. Hardjono, Ed., "A Generalized PAC for Kerberos V5", Work in Progress, draft-ietf-krb-wg-general-pac-01, October 2011.
- [PAC] Brezak, J., "Utilizing the Windows 2000 Authorization Data in Kerberos Tickets for Access Control to Resources", February 2002.
- [RFC2307] Howard, L., "An Approach for Using LDAP as a Network Information Service", RFC 2307, DOI 10.17487/RFC2307, March 1998,
http://www.rfc-editor.org/info/rfc2307. - [RFC2624] Shepler, S., "NFS Version 4 Design Considerations", RFC 2624, DOI 10.17487/RFC2624, June 1999,
http://www.rfc-editor.org/info/rfc2624. - [RFC4120] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos Network Authentication Service (V5)", RFC 4120, DOI 10.17487/RFC4120, July 2005,
http://www.rfc-editor.org/info/rfc4120. - [RFC5531] Thurlow, R., "RPC: Remote Procedure Call Protocol Specification Version 2", RFC 5531, DOI 10.17487/RFC5531, May 2009,
http://www.rfc-editor.org/info/rfc5531. - [RFC5716] Lentini, J., Everhart, C., Ellard, D., Tewari, R., and M. Naik, "Requirements for Federated File Systems", RFC 5716, DOI 10.17487/RFC5716, January 2010,
http://www.rfc-editor.org/info/rfc5716. - [RFC7532] Lentini, J., Tewari, R., and C. Lever, Ed., "Namespace Database (NSDB) Protocol for Federated File Systems", RFC 7532, DOI 10.17487/RFC7532, March 2015,
http://www.rfc-editor.org/info/rfc7532. - [RFC7533] Lentini, J., Tewari, R., and C. Lever, Ed., "Administration Protocol for Federated File Systems", RFC 7533, DOI 10.17487/RFC7533, March 2015,
http://www.rfc-editor.org/info/rfc7533. - [SEC-ADD] Lever, C., "Federated Filesystem Security Addendum", Work in Progress, draft-cel-nfsv4-federated-fs-security-addendum-06, October 2016.
Acknowledgments π«Ά
Andy Adamson would like to thank NetApp, Inc., for its funding of his time on this project. π
We thank Chuck Lever, Tom Haynes, Brian Reitz, Bruce Fields, and David Noveck for their review. πβ¨
Authors' Addresses π
William A. (Andy) Adamson NetApp
Email: andros@netapp.com
Nicolas Williams Cryptonector
Email: nico@cryptonector.com
and that's the whole spec, bestie!! ππ¦ you made it through the entire thing, you're literally iconic π
π¦ where this page comes from
- ietf: rfc8000 2016-11
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms