This commit is contained in:
Peter Saint-Andre 2013-12-03 10:10:07 -07:00
parent 56770630c0
commit 89085ed99f
1 changed files with 25 additions and 14 deletions

View File

@ -27,8 +27,8 @@
&stpeter;
&lance;
<revision>
<version>1.1rc1</version>
<date>2013-10-22</date>
<version>1.1rc2</version>
<date>2013-12-03</date>
<initials>ls/psa</initials>
<remark><p>Defined HTTP lookup methods using well-known URIs as specified in RFC 5785.</p></remark>
</revision>
@ -100,7 +100,7 @@
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>Although &xmppcore; specifies the use of TCP as the method of connecting to an XMPP server, alternative connection methods exist, including the &xep0124; method (for which &xep0206; is the XMPP profile) and &xmppoverwebsocket;. For some of these methods, it is necessary to discover further parameters before connecting, such as the HTTP URL of an alternative connection manager. Without ways to auto-discovering alternative connection methods, the relevant information would need to be provided manually by a human user, which is cumbersome and error-prone.</p>
<p>Although &xmppcore; specifies the use of TCP as the method of connecting to an XMPP server, alternative connection methods exist, including the &xep0124; method (for which &xep0206; is the XMPP profile) and &xmppoverwebsocket;. For some of these methods, it is necessary to discover further parameters before connecting, such as the HTTP URL of an alternative connection manager. Without ways to auto-discover alternative connection methods, the relevant information would need to be provided manually by a human user (which is cumbersome and error-prone) or hard-coded into XMPP software applications (which is brittle and not interoperable).</p>
<p>This document defines two ways to encapsulate information about alternative connection methods for auto-discovery:</p>
<ol>
<li>DNS TXT resource records</li>
@ -136,10 +136,10 @@
</section2>
<section2 topic='Examples' anchor='dnsexamples'>
<p>The following examples show two DNS TXT resource records: the first indicates support for the XMPP Over BOSH connection method defined in <cite>XEP-0124</cite> and <cite>XEP-0206</cite> and the second indicates support for WAP connections (the latter connection method is not yet defined).</p>
<p>The following examples show two DNS TXT resource records: the first indicates support for the XMPP Over BOSH connection method defined in <cite>XEP-0124</cite> and <cite>XEP-0206</cite> and the second indicates support for XMPP over WebSocket connections defined in &xmppoverwebsocket;.</p>
<example caption='TXT Resource Records'><![CDATA[
_xmppconnect IN TXT "_xmpp-client-xbosh=https://bosh.jabber.org:5280/bind"
_xmppconnect IN TXT "_xmpp-client-wap=http://wap.jabber.org/connector"
_xmppconnect IN TXT "_xmpp-client-xbosh=https://web.example.org:5280/bosh"
_xmppconnect IN TXT "_xmpp-client-websocket=wss://web.example.com:443/ws"
]]></example>
</section2>
@ -162,19 +162,19 @@ _xmppconnect IN TXT "_xmpp-client-wap=http://wap.jabber.org/connector"
<ol start='1'>
<li>HTTP queries for host-meta information MUST be used only as a fallback after the methods specified in <cite>RFC 6120</cite> have been exhausted.</li>
<li>A domain SHOULD NOT present information in host-meta link records that is available via the DNS SRV records defined in <cite>RFC 6120</cite>.</li>
<li>The order of XMPP related link entries in the host-meta file records SHOULD NOT be interpreted as significant by the presenting domain or the receiving entity.</li>
<li>The order of XMPP related link entries in the host-meta file SHOULD NOT be interpreted as significant by the presenting domain or the receiving entity.</li>
</ol>
</section2>
<section2 topic='Examples' anchor='httpexamples'>
<p>The following examples show two host-meta link records: the first indicates support for the XMPP Over BOSH connection method defined in <cite>XEP-0124</cite> and <cite>XEP-0206</cite> and the second indicates support for the &xmppoverwebsocket; connection method.</p>
<p>The following examples show two host-meta link records: the first indicates support for the XMPP Over BOSH connection method defined in <cite>XEP-0124</cite> and <cite>XEP-0206</cite> and the second indicates support for the XMPP Over WebSocket connection method defined in <cite>draft-ietf-xmpp-websocket</cite>.</p>
<example caption='Result for /.well-known/host-meta'><![CDATA[<?xml version='1.0' encoding=utf-9'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
...
<Link rel="urn:xmpp:alt-connections:xbosh"
href="https://example.com:5280/bosh" />
href="https://web.example.com:5280/bosh" />
<Link rel="urn:xmpp:alt-connections:websocket"
href="wss://example.com:5280/websocket" />
href="wss://web.example.com:443/ws" />
...
</XRD>
]]></example>
@ -185,11 +185,11 @@ _xmppconnect IN TXT "_xmpp-client-wap=http://wap.jabber.org/connector"
...
{
"rel": "urn:xmpp:alt-connections:xbosh",
"href": "https://example.com:5280/bosh"
"href": "https://web.example.com:5280/bosh"
},
{
"rel": "urn:xmpp:alt-connections:websocket",
"href": "wss://example.com:5280/websocket"
"href": "wss://web.example.com:443/ws"
},
...
]
@ -200,6 +200,7 @@ _xmppconnect IN TXT "_xmpp-client-wap=http://wap.jabber.org/connector"
<section1 topic='Security Considerations' anchor='security'>
<p>It is possible that advertisement of alternative connection methods can introduce security vulnerabilities, since a connecting entity (usually a client) might deliberately seek to connect using the method with the weakest security mechanisms (e.g., no channel encryption or relatively weak authentication). Care needs to be taken in determining which alternative connection methods are appropriate to advertise.</p>
<p>Entities that use these connection methods need to ensure that they conform to the security considerations of each method (e.g., by preferring to use 'https' or 'wss' URLs that are protected using Transport Layer Security).</p>
</section1>
<section1 topic='IANA Considerations' anchor='iana'>
@ -228,7 +229,8 @@ _xmppconnect IN TXT "_xmpp-client-wap=http://wap.jabber.org/connector"
]]></code>
<p>The registrant can register more than one attribute at a time, each contained in a separate &lt;method/&gt; element.</p>
</section3>
<section3 topic='Initial Registration' anchor='registrar-altconn-init'>
<section3 topic='Registered Values' anchor='registrar-altconn-values'>
<p>This document registers the following values.</p>
<code><![CDATA[
<method>
<name>_xmpp-client-httppoll</name>
@ -239,11 +241,20 @@ _xmppconnect IN TXT "_xmpp-client-wap=http://wap.jabber.org/connector"
<doc>XEP-0025</doc>
</method>
<method>
<name>_xmpp-client-websocket</name>
<desc>XMPP Over WebSocket connection method</desc>
<syntax>
The ws: or wss: URL at which to contact the WebSocket connection manager or proxy
</syntax>
<doc>draft-ietf-xmpp-websocket</doc>
</method>
<method>
<name>_xmpp-client-xbosh</name>
<desc>XMPP Over Bosh connection method</desc>
<syntax>
The http: or https: URL at which to contact the HTTP Binding connection manager or proxy
The http: or https: URL at which to contact the HTTP Binding (BOSH) connection manager or proxy
</syntax>
<doc>XEP-0206</doc>
</method>