mirror of https://github.com/moparisthebest/xeps
XEP-0389: add OOB challenge type.
Also add a revision block and fix a few minor typos.
This commit is contained in:
parent
1f904b69be
commit
7810ab08be
100
xep-0389.xml
100
xep-0389.xml
|
@ -31,6 +31,21 @@
|
||||||
<supersededby/>
|
<supersededby/>
|
||||||
<shortname>ibr2</shortname>
|
<shortname>ibr2</shortname>
|
||||||
&sam;
|
&sam;
|
||||||
|
<revision>
|
||||||
|
<version>0.4.0</version>
|
||||||
|
<date>2020-04-22</date>
|
||||||
|
<initials>ssw</initials>
|
||||||
|
<remark>
|
||||||
|
<ul>
|
||||||
|
<li>Add OOB challenge type.</li>
|
||||||
|
<li>Add IQ query for flows.</li>
|
||||||
|
<li>Add a glossary.</li>
|
||||||
|
<li>Make challenge listings more consistent.</li>
|
||||||
|
<li>Cleanup and expand the registrar considerations section.</li>
|
||||||
|
<li>Clarifications and typo fixes throughout the text.</li>
|
||||||
|
</ul>
|
||||||
|
</remark>
|
||||||
|
</revision>
|
||||||
<revision>
|
<revision>
|
||||||
<version>0.3.0</version>
|
<version>0.3.0</version>
|
||||||
<date>2020-04-19</date>
|
<date>2020-04-19</date>
|
||||||
|
@ -216,14 +231,14 @@
|
||||||
registration or recovery flow.
|
registration or recovery flow.
|
||||||
Each <challenge/> element contains a "type" attribute that uniquely
|
Each <challenge/> element contains a "type" attribute that uniquely
|
||||||
identifies the challenge for the purpose of determining if it is supported.
|
identifies the challenge for the purpose of determining if it is supported.
|
||||||
If a flow would offer the same challenge twice (eg. two dataforms asking for
|
If a flow would offer the same challenge twice (eg. two data forms asking
|
||||||
different data), the challenge SHOULD only be listed once in the flow
|
for different data), the challenge SHOULD only be listed once in the flow
|
||||||
element.
|
element.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
For example, a server may advertise a "Verify with SMS" flow and a "Verify
|
For example, a server may advertise a "Verify with SMS" flow and a "Verify
|
||||||
by Phone Call" flow that both show a dataform asking for a phone number
|
by Phone Call" flow that both show a data form asking for a phone number
|
||||||
and then a second dataform asking for a token provided to the user in a
|
and then a second data form asking for a token provided to the user in a
|
||||||
text message or phone call depending on which flow the user selects.
|
text message or phone call depending on which flow the user selects.
|
||||||
</p>
|
</p>
|
||||||
<example caption='Host Advertises Stream Features'><![CDATA[
|
<example caption='Host Advertises Stream Features'><![CDATA[
|
||||||
|
@ -332,7 +347,7 @@
|
||||||
If the client is initiating registration or recovery after a stream has
|
If the client is initiating registration or recovery after a stream has
|
||||||
already been initiated it uses the same registration element wrapped in an
|
already been initiated it uses the same registration element wrapped in an
|
||||||
IQ of type "set".
|
IQ of type "set".
|
||||||
</p>
|
</p>
|
||||||
<example caption='Client selects a recovery flow after stream negotiation'><![CDATA[
|
<example caption='Client selects a recovery flow after stream negotiation'><![CDATA[
|
||||||
<iq type='set' id='foo'>
|
<iq type='set' id='foo'>
|
||||||
<recovery xmlns='urn:xmpp:register:0'>
|
<recovery xmlns='urn:xmpp:register:0'>
|
||||||
|
@ -347,14 +362,28 @@
|
||||||
'urn:xmpp:register:0' namespace with a 'type' attribute that uniquely
|
'urn:xmpp:register:0' namespace with a 'type' attribute that uniquely
|
||||||
identifies the type of payload a client might expect the element to contain.
|
identifies the type of payload a client might expect the element to contain.
|
||||||
</p>
|
</p>
|
||||||
|
<example caption='Server issues a challenge'><![CDATA[
|
||||||
|
<challenge xmlns='urn:xmpp:register:0'
|
||||||
|
type='urn:example:challenge'>
|
||||||
|
<example xmlns='urn:example:challenge'>Payload</example>
|
||||||
|
</challenge>]]></example>
|
||||||
<p>
|
<p>
|
||||||
This document defines a type of 'jabber:x:data' which MUST always contain a
|
After a challenge is received, the client replies to the challenge by
|
||||||
data form (an 'x' element with type 'form') as defined by &xep0004;.
|
sending a <response/> element qualified by the 'urn:xmpp:register:0'
|
||||||
Other types may be defined in the future.
|
namespace or a cancellation as defined later in this document.
|
||||||
For example, a challenge containing a data form might look like the
|
If the client sends a response, it MUST also include the payload
|
||||||
following:
|
corresponding to the challenges 'type' element (which may be empty).
|
||||||
</p>
|
</p>
|
||||||
<example caption='Host Returns Registration Form to Entity'><![CDATA[
|
<example caption='Client responds to a challenge'><![CDATA[
|
||||||
|
<response xmlns='urn:xmpp:register:0'>
|
||||||
|
<result xmlns='urn:example:challenge'>Example Response</result>
|
||||||
|
</response>]]></example>
|
||||||
|
<section2 topic='Data Form' anchor='dataform'>
|
||||||
|
<p>
|
||||||
|
This document defines a type of 'jabber:x:data' which MUST always contain a
|
||||||
|
data form (an 'x' element with type 'form') as defined by &xep0004;.
|
||||||
|
</p>
|
||||||
|
<example caption='Server issues a data form challenge'><![CDATA[
|
||||||
<challenge xmlns='urn:xmpp:register:0'
|
<challenge xmlns='urn:xmpp:register:0'
|
||||||
type='jabber:x:data'>
|
type='jabber:x:data'>
|
||||||
<x xmlns='jabber:x:data' type='form'>
|
<x xmlns='jabber:x:data' type='form'>
|
||||||
|
@ -375,20 +404,14 @@
|
||||||
<required/>
|
<required/>
|
||||||
</field>
|
</field>
|
||||||
</x>
|
</x>
|
||||||
</challenge>
|
</challenge>]]></example>
|
||||||
]]></example>
|
|
||||||
<p>
|
<p>
|
||||||
After a challenge is received, the client replies to the challenge by
|
The response to a "jabber:x:data" challenge MUST be a form submission (an
|
||||||
sending a <response/> element qualified by the 'urn:xmpp:register:0'
|
'x' element of type 'submit').
|
||||||
namespace or a cancellation as defined later in this document.
|
|
||||||
If the client sends a response, it MUST also include a payload defined by
|
|
||||||
the challenges 'type' element.
|
|
||||||
In the case of a "jabber:x:data" challenge, the payload should be a form
|
|
||||||
submission as defined by &xep0004; (an 'x' element of type 'submit').
|
|
||||||
For instance, to reply to the data form challenge from the previous example
|
For instance, to reply to the data form challenge from the previous example
|
||||||
a client might send:
|
a client might send:
|
||||||
</p>
|
</p>
|
||||||
<example caption='User Submits Registration Form'><![CDATA[
|
<example caption='Client submits a data form in response to the challenge'><![CDATA[
|
||||||
<response xmlns='urn:xmpp:register:0'>
|
<response xmlns='urn:xmpp:register:0'>
|
||||||
<x xmlns='jabber:x:data' type='submit'>
|
<x xmlns='jabber:x:data' type='submit'>
|
||||||
<field type='hidden' var='FORM_TYPE'>
|
<field type='hidden' var='FORM_TYPE'>
|
||||||
|
@ -407,8 +430,26 @@
|
||||||
<value>juliet@capulet.com</value>
|
<value>juliet@capulet.com</value>
|
||||||
</field>
|
</field>
|
||||||
</x>
|
</x>
|
||||||
</response>
|
</response>]]></example>
|
||||||
]]></example>
|
</section2>
|
||||||
|
<section2 topic='Out of Band Data' anchor='oob'>
|
||||||
|
<p>
|
||||||
|
Challenges of the type "jabber:x:oob" MUST contain an <x/> element
|
||||||
|
qualified by the "jabber:x:oob" namespace as defined in &xep0066;.
|
||||||
|
</p>
|
||||||
|
<example caption='Server issues an OOB challenge'><![CDATA[
|
||||||
|
<challenge xmlns='urn:xmpp:register:0'
|
||||||
|
type='jabber:x:oob'>
|
||||||
|
<x xmlns='jabber:x:oob'>
|
||||||
|
<url>http://example.net/login?token=foo</url>
|
||||||
|
</x>
|
||||||
|
</challenge>]]></example>
|
||||||
|
<p>
|
||||||
|
If the client sends a response to the OOB challenge it MUST be empty.
|
||||||
|
</p>
|
||||||
|
<example caption='Client acknowledges the OOB challenge'><![CDATA[
|
||||||
|
<response xmlns='urn:xmpp:register:0'/>]]></example>
|
||||||
|
</section2>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Completing Registration or Recovery' anchor='completion'>
|
<section1 topic='Completing Registration or Recovery' anchor='completion'>
|
||||||
<p>
|
<p>
|
||||||
|
@ -528,7 +569,7 @@
|
||||||
<type>A name that uniquely identifies the challenge.</type>
|
<type>A name that uniquely identifies the challenge.</type>
|
||||||
<desc>A natural-language summary of the challenge.</desc>
|
<desc>A natural-language summary of the challenge.</desc>
|
||||||
<doc>
|
<doc>
|
||||||
The doucment (or documents) in which the IBR challenge and its paylaod are
|
The document (or documents) in which the IBR challenge and its payload are
|
||||||
defined.
|
defined.
|
||||||
</doc>
|
</doc>
|
||||||
</challenge>]]></code>
|
</challenge>]]></code>
|
||||||
|
@ -540,17 +581,24 @@
|
||||||
<p>This specification defines the following IBR challenge:</p>
|
<p>This specification defines the following IBR challenge:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>jabber:x:data</li>
|
<li>jabber:x:data</li>
|
||||||
|
<li>jabber:x:oob</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
Upon advancement of this specification from a status of Experimental to a
|
Upon advancement of this specification from a status of Experimental to a
|
||||||
status of Draft, the ®ISTRAR; shall add the following definition to the
|
status of Draft, the ®ISTRAR; shall add the following definitions to
|
||||||
IBR challenges registry, as described in this document:
|
the IBR challenges registry, as described in this document:
|
||||||
</p>
|
</p>
|
||||||
<code caption='IBR Challenges Registry Submission for Data Forms'><![CDATA[
|
<code caption='IBR Challenges Registry Submission for Data Forms'><![CDATA[
|
||||||
<challenge>
|
<challenge>
|
||||||
<type>jabber:x:data</type>
|
<type>jabber:x:data</type>
|
||||||
<desc>Requests that the client fill out an XEP-0004 data form.</desc>
|
<desc>Requests that the client fill out an XEP-0004 data form.</desc>
|
||||||
<doc>&xep0389;, &xep0004;</doc>
|
<doc>&xep0389;, &xep0004;</doc>
|
||||||
|
</challenge>]]></code>
|
||||||
|
<code caption='IBR Challenges Registry Submission for OOB Data'><![CDATA[
|
||||||
|
<challenge>
|
||||||
|
<type>jabber:x:oob</type>
|
||||||
|
<desc>Requests that the client execute a URI.</desc>
|
||||||
|
<doc>&xep0066;</doc>
|
||||||
</challenge>]]></code>
|
</challenge>]]></code>
|
||||||
</section2>
|
</section2>
|
||||||
<section2 topic='Namespace Versioning' anchor='registrar-versioning'>
|
<section2 topic='Namespace Versioning' anchor='registrar-versioning'>
|
||||||
|
|
Loading…
Reference in New Issue