Network Working Group A. Melnikov Internet Draft Isode Limited Document: draft-melnikov-ldap-krb-authzid-01.txt November 2006 Expires in six months Additional authorization identity syntax for Kerberos-aware Directories Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html A revised version of this draft document will be submitted to the RFC editor as a Draft Standard for the Internet Community. Discussion and suggestions for improvement are requested. Distribution of this draft is unlimited. A. Melnikov FORMFEED[Page i] Internet DRAFT Kerberos Authorization Id for LDAP 20 November 2006 Abstract This document defines new LDAP authorization identity syntax for Kerberos-aware Directories. 1. Conventions used in this document 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 RFC 2119. [KEYWORDS] 2. Authorization Identity Syntax for Kerberos This document defines a new LDAP [LDAP] authorization identity syntax for Directories that support Kerberos V5 [KERBEROS]. For example, an LDAP server that implements SASL GSSAPI [SASL-GSSAPI] mechanism may also support the new syntax defined below. The following syntax specification uses the augmented Backus-Naur Form (BNF) notation as specified in [ABNF]. Non-terminals referenced but not defined below are as defined by [AUTHMECH], [KERBEROS] and [UTF-8]. authzId =/ krbAuthzId KRBCOLON = %x6B %x72 %x62 %x3a ; "krb:" krbAuthzId = KRBCOLON krbPrincipal ; kerberos-principal-name-based ; authorization id. krbRealmDelimiter = %x40 ; '@' krbComponentDelimiter = %x2F ; '/' krbPrincipal = krbNameComponents [krbRealmDelimiter krbRealm] krbNameComponents = krbNameComponent *(krbComponentDelimiter krbNameComponent) krbNameComponent = KerberosString ; *UTF8 ; This corresponds to individual A. Melnikov FORMFEED[Page 2] Internet DRAFT Kerberos Authorization Id for LDAP 20 November 2006 ; "name-string" of "PrincipalName" as defined ; in [KERBEROS]. ; ; '/', '\' and '@' characters must be escaped ; by prefixing with \, i.e. "\@" krbRealm = KerberosString ; *UTF8 ; This corresponds to "Realm" as defined in ; [KERBEROS]. The syntax is constrained as ; described in section 6 of [KERBEROS]. ; ; '/', '\' and '@' characters must be escaped ; by prefixing with \, i.e. "\@" The krbAuthzId choice allows a client to assert an authorization identity of a Kerberos principal when the client doesn't know a corresponding distinguished name for the asserted identity. A krbAuthzId is prefixed with a unique prefix "krb:" which is followed by a Kerberos principal (krbPrincipal). krbPrincipal consists of one or more components (components of "name-string" [KERBEROS]) that form a principal name followed by an optional Kerberos realm (krbRealm). <> Before constructing a krbPrincipal each principal name component and the realm MUST be prepared using the "SASLPrep" profile [SASLPrep] of the "stringprep" algorithm [RFC3454]. <> All the krbNameComponent elements are delimited by the '/' character. The principal name components are separated from the realm by the '@' character. Because of the special meaning of the '/' and the '@' as the delimiters, they are not allowed to be unescaped if used inside of krbNameComponent (see Section 6.2 of [KERBEROS] for an example) or krbRealm. The '\' character is used as the escape character. The '\' itself has to be escaped. Note that it is a typical for Kerberos/GSSAPI implementations to use '/' and '@' as the delimiters. <> <> Note, that name-type element of PrincipalName [KERBEROS] is not being used in krbPrincipal. This document doesn't mandate how an LDAP server performs internal mapping of a krbPrincipal to the corresponding distinguished name. For example, an implementation may choose to do an algorithmic mapping ("user1@EXAMPLE.COM" ==> "cn=user1, dc=EXAMPLE, dc=COM"), or perform a search based mapping. The client may use LDAP "Who am I?" Extended Operation [WHO-AM-I] to discover the resulting distinguished name. 3. Security considerations <> 4. References 4.1. Normative References [KEYWORDS] Bradner, "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997 [KERBEROS] Neuman, C., Yu, T., Hartman, S. and K. Raeburn, "The Kerberos Network Authentication Service (V5)", RFC 4120, July 2005. [AUTHMECH] Harrison, R. (Editor), "Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms", RFC 4513, June 2006. [ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 4234, October 2005. [UTF-8] Yergeau, F., "UTF-8, a transformation format of ISO 10646", A. Melnikov FORMFEED[Page 4] Internet DRAFT Kerberos Authorization Id for LDAP 20 November 2006 RFC 3629, STD 63, November 2003. [RFC3454] P. Hoffman, M. Blanchet, "Preparation of Internationalized Strings ("stringprep")," RFC 3454, December 2002. [SASLPrep] Zeilenga, K., "SASLprep: Stringprep Profile for User Names and Passwords", RFC 4013, February 2005. 4.2. Informative References [SASL-GSSAPI] Melnikov, A., "SASL GSSAPI mechanisms", draft-ietf- sasl-gssapi, work in progress. <> [WHO-AM-I] Zeilenga, K., "Lightweight Directory Access Protocol (LDAP) - "Who am I?" Operation", RFC 4532, June 2006. 5. Author's Address Alexey Melnikov Isode Limited 5 Castle Business Village 36 Station Road Hampton, Middlesex TW12 2BX, United Kingdom Email: Alexey.Melnikov@isode.com URI: http://www.melnikov.ca/ 6. Acknowledgments Thanks to Chris Ridd for providing useful feedback and suggestions. A. Melnikov FORMFEED[Page 5] Internet DRAFT Kerberos Authorization Id for LDAP 20 November 2006 Disclaimer of validity 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. Full Copyright Statement Copyright (C) The Internet Society (2006). 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 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. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. A. Melnikov FORMFEED[Page 6] Internet DRAFT Kerberos Authorization Id for LDAP 20 November 2006 Status of this Memo .......................................... i Abstract ..................................................... 2 1. Conventions used in this document ...................... 2 2. Authorization Identity Syntax for Kerberos ............. 2 3. Security considerations ................................. 4 4. References ............................................. 4 4.1. Normative References ................................... 4 4.2. Informative References ................................. 5 5. Author's Address ........................................ 5 6. Acknowledgments ......................................... 5 A. Melnikov FORMFEED[Page ii]