RFC 8284

Lightweight Directory Access Protocol (LDAP) Schema for Supporting the Extensible Messaging and Presence Protocol (XMPP) in White Pages

πŸ“… published November 2017, from ietf

RFC 8284: LDAP Schema for Supporting XMPP in White Pages πŸ’–

Title: Lightweight Directory Access Protocol (LDAP) Schema for Supporting the Extensible Messaging and Presence Protocol (XMPP) in White Pages πŸŽ€ Author: S. Kille, Isode Ltd 🧚 Category: Informational πŸ“š Date: November 2017 πŸ—“οΈ ISSN: 2070-1721 Obsoletes / Updates: none listed ✨


Abstract

okay so XMPP figures out who people are using Jabber IDs (JIDs) πŸ¦‹ and LDAP gives you a white pages service, which is basically a big directory of people and internet-protocol stuff πŸ“–. This spec adds a schema so JIDs can be linked to objects in an LDAP directory, so white pages apps can actually use that info πŸ’…βœ¨

Status of This Memo

This document is not an Internet Standards Track specification. It's published for information only πŸ“š (no pressure, bestie 🫢).

It's a product of the Internet Engineering Task Force (IETF) and it reflects the consensus of the IETF community 🌈. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved doc is a candidate for any level of Internet Standard, though, so see Section 2 of RFC 7841 for that πŸ™ˆ.

You can find the current status, any errata, and how to give feedback at https://www.rfc-editor.org/info/rfc8284 πŸ”—.

Copyright (c) 2017 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 (https://trustee.ietf.org/license-info) as they stand on the publication date. Read these carefully, because they spell out your rights and restrictions for this document πŸ’œ. 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

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
2.  Conventions Used in This Document . . . . . . . . . . . . . .   3
3.  Schema Definition . . . . . . . . . . . . . . . . . . . . . .   3
  3.1.  Object Class  . . . . . . . . . . . . . . . . . . . . . .   3
  3.2.  Attribute . . . . . . . . . . . . . . . . . . . . . . . .   3
4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   4
5.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
6.  Normative References  . . . . . . . . . . . . . . . . . . . .   5
Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   6
Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   6

1. Introduction ✨

So XMPP [RFC6120] uses Jabber IDs (JIDs) to identify users πŸ¦‹. LDAP [RFC4510] gives you a white pages service with a schema for users and for internet protocols defined in [RFC4519] πŸ“–. This spec is the glow-up that lets XMPP JIDs get linked to LDAP directory objects, so white pages apps can use that data πŸ’–.

The LDAP schema for storing JIDs is built so a JID can be attached to any object in the directory 🌸. How? You attach the new JID Attribute to a brand new Auxiliary Object Class called JIDObject 🧚.

2. Conventions Used in This Document πŸ’…

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here πŸ”₯.

3. Schema Definition πŸŽ€

This section defines the schema used to store JIDs in the directory πŸ’œ.

3.1. Object Class πŸ¦‹

This section defines a new Auxiliary Object Class called JIDObject, which MAY be associated with any structural Object Class 🌈. It's used to augment entries for objects that act, or may act, as an XMPP client πŸ’…. The JID attribute is optional, so you can set up an object that's allowed to have a JID even if it doesn't have one yet 🫢.

     ( 1.3.6.1.1.23.1 NAME 'JIDObject'
     AUXILIARY
     MAY jid )

3.2. Attribute πŸ’–

This section defines the JID attribute that the JIDObject Auxiliary Object Class references 🧚. The JID attribute's syntax MUST follow the rules of [RFC7622] πŸ“œ. The stored JID MUST be a bare JID (like romeo@shakespeare.example.com for a human user) and NOT a full JID. A full JID looks like romeo@shakespare.example.com/AABBCC, and it points at one specific XMPP client the human uses, identified by the resource AABBCC πŸ™ˆ.

Heads up: the LDAP directory server isn't expected to enforce this syntax 🫣. The syntax rules are for the LDAP clients that set the attribute, and human usage is the main target πŸ’…. Apps using this attribute should format the string in whatever way fits the app 🌸. XMPP apps SHOULD apply [RFC7622] to the attribute ✨. The directory service doesn't enforce JID syntax, and values get compared using the matching rules in the attribute definition πŸ¦‹.

Also, for the sake of users, admins, and implementers, the Directory String syntax and the caseIgnoreMatch matching rule were picked so values can be entered and matched using the usual directory rules πŸ“–. But since that syntax and matching rule differ from [RFC7622], false positives and false negatives can happen 😭. This isn't expected to cause operational issues, based on implementation experience with similar syntax and matching rule mismatches 🌈.

     ( 1.3.6.1.1.23.2 NAME 'jid'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

1.3.6.1.4.1.1466.115.121.1.15 refers to the Directory String syntax defined in [RFC4517] πŸ’œ.

4. IANA Considerations 🌸

The following registrations were made in the "Lightweight Directory Access Protocol (LDAP) Parameters" registry (https://www.iana.org/assignments/ldap-parameters), per BCP 64 [RFC4520] πŸ“.

Object Identifier Registration ✨

An object identifier was assigned to support the registrations this spec needs, via an entry in the Internet Directory Numbers (iso.org.dod.internet.directory [1.3.6.1.1.]) registry 🧚:

Decimal: 23
Name: xmpp
Description: LDAP schema for XMPP

Two object identifiers were assigned πŸ¦‹.

'JIDObject' Descriptor Registration πŸŽ€

Name: JIDObject
Type: O
OID: 1.3.6.1.1.23.1

'jid' Descriptor Registration πŸ’…

Name: jid
Type: A
OID: 1.3.6.1.1.23.2

5. Security Considerations πŸ™ˆ

Okay, real talk, this one matters 😭πŸ”₯. XMPP JIDs are often personal identifiers that let people communicate electronically, and they carry similar considerations to email addresses πŸ’Œ. This schema lets that info get published in LDAP directories, which might be corporate or public services 🌐. So be careful to only publish JID info that's fine to link to the LDAP object AND fine to make visible to every LDAP user πŸ‘€. The general LDAP security considerations in [RFC4510] also apply πŸ›‘οΈ.

6. Normative References πŸ“š

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <https://www.rfc-editor.org/info/rfc2119>.

[RFC4510]  Zeilenga, K., Ed., "Lightweight Directory Access Protocol
           (LDAP): Technical Specification Road Map", RFC 4510,
           DOI 10.17487/RFC4510, June 2006,
           <https://www.rfc-editor.org/info/rfc4510>.

[RFC4517]  Legg, S., Ed., "Lightweight Directory Access Protocol
           (LDAP): Syntaxes and Matching Rules", RFC 4517,
           DOI 10.17487/RFC4517, June 2006,
           <https://www.rfc-editor.org/info/rfc4517>.

[RFC4519]  Sciberras, A., Ed., "Lightweight Directory Access Protocol
           (LDAP): Schema for User Applications", RFC 4519,
           DOI 10.17487/RFC4519, June 2006,
           <https://www.rfc-editor.org/info/rfc4519>.

[RFC4520]  Zeilenga, K., "Internet Assigned Numbers Authority (IANA)
           Considerations for the Lightweight Directory Access
           Protocol (LDAP)", BCP 64, RFC 4520, DOI 10.17487/RFC4520,
           June 2006, <https://www.rfc-editor.org/info/rfc4520>.

[RFC6120]  Saint-Andre, P., "Extensible Messaging and Presence
           Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120,
           March 2011, <https://www.rfc-editor.org/info/rfc6120>.

[RFC7622]  Saint-Andre, P., "Extensible Messaging and Presence
           Protocol (XMPP): Address Format", RFC 7622,
           DOI 10.17487/RFC7622, September 2015,
           <https://www.rfc-editor.org/info/rfc7622>.

[RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
           2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
           May 2017, <https://www.rfc-editor.org/info/rfc8174>.

Acknowledgements 🫢

Huge thanks to Alexey Melnikov for tips on preparing this doc πŸ’–. Thanks also to Alan Murdock, Yoav Nir, Peter Saint-Andre, and Kurt Zeilenga for their review comments 🌈✨.

Author's Address 🧚

Steve Kille
Isode Ltd
14 Castle Mews
Hampton, Middlesex  TW12 2NP
United Kingdom

Email: Steve.Kille@isode.com
πŸ“¦ where this page comes from