diff --git a/xep-0379.xml b/xep-0379.xml index 0c24637b..be50d7db 100644 --- a/xep-0379.xml +++ b/xep-0379.xml @@ -28,6 +28,12 @@ georg@op-co.de georg@yax.im + + 0.1.2 + 2017-02-16 + gl +

Added "Usability Considerations", removed actual XMPP client, some text editing.

+
0.1.1 2017-01-01 @@ -118,7 +124,7 @@ Romeo mongatague.net capulet.net Juliet optionally a "name" parameter with the suggested display name.

If the "preauth" parameter is present, the processing client is supposed @@ -136,12 +142,12 @@ xmpp:romeo@montague.net?roster;preauth=1tMFqYDdKhfe2pwp;name=Romeo%20Montague - +

As Romeo doesn't know Juliet's JID in advance, he needs to use an out-of-band method (like e-mail, QR codes or NFC) to transmit the invitation link to Juliet. While these methods allow transmission of xmpp: URIs, there is no mechanism to ensure that Juliet actually has a client installed that can open the URI.

One way to solve this problem is to present Juliet with a web-based landing page that contains the following elements:

There are multiple options where such a landing page could be hosted:

@@ -164,8 +170,8 @@ xmpp:romeo@montague.net?roster;preauth=1tMFqYDdKhfe2pwp;name=Romeo%20Montague Furthermore, the server operator needs to maintain the list of recommended clients. -

A possible screen representation of the landing page would be:

@@ -189,7 +195,7 @@ https://yax.im/i/romeo/montague.net/1tMFqYDdKhfe2pwp/Romeo+Montague - +

When Juliet opens the xmpp: URI (or the according client-supported landing page URI) in her client, the client should perform the usual roster addition action, i.e. display a dialog allowing to edit the entry @@ -237,27 +243,28 @@ https://yax.im/i/romeo/montague.net/1tMFqYDdKhfe2pwp/Romeo+Montague -

If Juliet's server support pre-approval, it will automatically handle the +

If Juliet's server supports pre-approval, it will automatically handle the incoming subscription request and issue a roster push. Otherwise, Juliet's client will receive the subscription request:

]]> -

Juliet's client SHOULD check the subscription request sender JID against - the whitelist, and either automatically approve the request or display an - according notification to Juliet.

+

Juliet's client MUST ensure that the sender JID is contained in the + auto-approval whitelist before automatically approving the request. + Otherwise, it has to fallback to the normal subscription approval + process.

- +

An implementation of this protocol MUST allow for a "graceful degradation" to the manual subscription approval process. If a client receives a malformed or unknown 'preauth' token, it MUST ignore it and act as if no preauth token was contained.

- +

When sending a pre-authenticated subscription request, the contact's client MUST NOT expect an immediate successful approval. If the user's issuing client is currently offline, or if the token has expired, a manual @@ -265,26 +272,6 @@ https://yax.im/i/romeo/montague.net/1tMFqYDdKhfe2pwp/Romeo+Montague same mechanism as before to indicate an unidirectional subscription.

- - -

If a user is logged in with multiple clients, some of their clients will - receive a subscription request with an unknown token. In this case, a client - MAY delay the user notification for a short time, to allow another logged-in - client to automatically handle the subscription request.

-
- - -

Some mobile device platforms allow an app to register itself as a - handler for cetain URIs. This allows an XMPP client to register for xmpp: - URIs, but also to redirect handling of cetain HTTP/HTTPS URIs. A mobile - client SHOULD register for the associated landing page URIs and properly - handle the contained invitations. For example, the yaxim client should - register a handler for https://yax.im/i/*, and present - the "Add to roster" dialog if such a link is opened. A client MAY register - for the landing page URIs of other providers after obtaining the - operators' approval. -

-
@@ -326,12 +313,6 @@ https://yax.im/i/romeo/montague.net/1tMFqYDdKhfe2pwp/Romeo+Montague roster addition and manual subscription approval.

- -

The invitation link that is generated by Romeo's client is considered a - personal invitation link for a single person. This, and the fact that the - link can only be used once, should be indicated by the client to Romeo. -

-

A Monkey-in-the-Middle attacker who gains access to the invitation link can manipulate its fields or redeem the link themselves. However, this is @@ -351,6 +332,47 @@ https://yax.im/i/romeo/montague.net/1tMFqYDdKhfe2pwp/Romeo+Montague equal to the JID, to prevent impersonation attacks.

+ + +

If a user is logged in with multiple clients, some of their clients will + receive a subscription request with an unknown token. In this case, a client + MAY delay the user notification for a short time, to allow another logged-in + client to automatically handle the subscription request.

+
+ + +

Some mobile device platforms allow an app to register itself as a + handler for cetain URIs. This allows an XMPP client to register for xmpp: + URIs, but also to redirect handling of cetain HTTP/HTTPS URIs. A mobile + client SHOULD register for the associated landing page URIs and properly + handle the contained invitations. For example, the JuicyXMPP client should + register a handler for https://juicyxmpp.example/i/*, and present + the "Add to roster" dialog if such a link is opened. A client MAY register + for the landing page URIs of other providers after obtaining the + operators' approval. +

+
+ +

By default, Romeo's client should generate personal invitation links + that can only be redeemed once, and only for a limited time. This fact + SHOULD be indicated by the client UI to Romeo.

+

If a client allows customization of the validity time or the number of + uses for a given invitation token, it SHOULD provide clear language + to inidcate that.

+
+ +

When a new contact is added automatically by the client, it SHOULD + indicate this fact to the user, and allow the user to rename / group + the contact appropriately. One possible way to achieve this is by + putting all auto-added contacts into a special roster group, and by + automatically removing this group on the first manual edit of the + contact.

+

In this case, the roster group should be named by the client according + to the user's locale settings. However, this approach might lead to + different clients using different group names, resulting in multiple + roster groups with the same goal.

+
+

This document requires no interaction with &IANA;.