draft-ietf-appsawg-webfinger-08.txt   draft-ietf-appsawg-webfinger-09.txt 
Network Working Group Paul E. Jones Network Working Group Paul E. Jones
Internet Draft Gonzalo Salgueiro Internet Draft Gonzalo Salgueiro
Intended status: Standards Track Cisco Systems Intended status: Standards Track Cisco Systems
Expires: June 21, 2013 Joseph Smarr Expires: July 28, 2013 Joseph Smarr
Google Google
December 21, 2012 January 28, 2013
WebFinger WebFinger
draft-ietf-appsawg-webfinger-08.txt draft-ietf-appsawg-webfinger-09.txt
Abstract Abstract
This specification defines the WebFinger protocol, which can be used This specification defines the WebFinger protocol, which can be used
to discover information about people or other entities on the to discover information about people or other entities on the
Internet using standard HTTP methods. Internet using standard HTTP methods.
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 34 skipping to change at page 1, line 34
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 21, 2013. This Internet-Draft will expire on July 28, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 14 skipping to change at page 2, line 14
Table of Contents Table of Contents
1. Introduction...................................................2 1. Introduction...................................................2
2. Terminology....................................................3 2. Terminology....................................................3
3. Example Uses of WebFinger......................................3 3. Example Uses of WebFinger......................................3
3.1. Locating a User's Blog....................................3 3.1. Locating a User's Blog....................................3
3.2. Identity Provider Discovery for OpenID Connect............5 3.2. Identity Provider Discovery for OpenID Connect............5
3.3. Auto-Configuration of Email Clients.......................6 3.3. Auto-Configuration of Email Clients.......................6
3.4. Retrieving Device Information.............................7 3.4. Retrieving Device Information.............................7
4. WebFinger Protocol.............................................8 4. WebFinger Protocol.............................................7
4.1. Constructing a WebFinger Query............................8 4.1. Constructing a WebFinger Query............................8
4.2. Performing a WebFinger Query..............................8 4.2. Performing a WebFinger Query..............................8
4.3. The "rel" Parameter.......................................9 4.3. The "rel" Parameter.......................................9
4.4. The JSON Resource Descriptor (JRD).......................10 4.4. The JSON Resource Descriptor (JRD).......................10
4.4.1. expires.............................................11 4.4.1. expires.............................................11
4.4.2. subject.............................................11 4.4.2. subject.............................................11
4.4.3. aliases.............................................11 4.4.3. aliases.............................................11
4.4.4. properties..........................................12 4.4.4. properties..........................................11
4.4.5. links...............................................12 4.4.5. links...............................................12
4.5. WebFinger and URIs.......................................14 4.5. WebFinger and URIs.......................................14
5. Cross-Origin Resource Sharing (CORS)..........................14 5. Cross-Origin Resource Sharing (CORS)..........................14
6. Access Control................................................15 6. Access Control................................................15
7. Hosted WebFinger Services.....................................15 7. Hosted WebFinger Services.....................................15
8. Security Considerations.......................................16 8. Security Considerations.......................................16
9. IANA Considerations...........................................17 9. IANA Considerations...........................................17
10. Acknowledgments..............................................18 10. Acknowledgments..............................................18
11. References...................................................18 11. References...................................................18
11.1. Normative References....................................18 11.1. Normative References....................................18
skipping to change at page 4, line 51 skipping to change at page 4, line 51
The email client would take note of the "blog" link relation in the The email client would take note of the "blog" link relation in the
above JRD that refers to Bob's blog. This URL would then be above JRD that refers to Bob's blog. This URL would then be
presented to you so that you could then visit his blog. The email presented to you so that you could then visit his blog. The email
client might also note that Bob has published an avatar link relation client might also note that Bob has published an avatar link relation
and use that picture to represent Bob inside the email client. and use that picture to represent Bob inside the email client.
Lastly, the client might consider the vcard [16] link relation in Lastly, the client might consider the vcard [16] link relation in
order to update contact information for Bob. order to update contact information for Bob.
In the above example, an "acct" URI [8] is used in the query, though In the above example, an "acct" URI [8] is used in the query, though
any valid alias for the user might also be used. An alias is a URI any valid alias for the user might also be used. See section 4.5 for
that is different from the "subject" URI that identifies the same more information on WebFinger and URIs.
entity. In the above example, there is one "http" alias returned,
though there might have been more than one. Had the "http:" URI An alias is a URI that is different from the "subject" URI that
shown as an alias been used to query for information about Bob, the identifies the same entity. In the above example, there is one
query would have appeared as: "http" alias returned, though there might have been more than one.
Had the "http:" URI shown as an alias been used to query for
information about Bob, the query would have appeared as:
GET /.well-known/webfinger? GET /.well-known/webfinger?
resource=http%3A%2F%2Fwww.example.com%2F~bob%2F HTTP/1.1 resource=http%3A%2F%2Fwww.example.com%2F~bob%2F HTTP/1.1
Host: example.com Host: www.example.com
The response would have been substantially the same, with the subject Note that the host queried in this example is different than for the
acct URI example, since the URI refers to a different host. Either
this host would provide a response, or it would redirect the client
to another host (e.g., redirect back to example.com). Either way,
the response would have been substantially the same, with the subject
and alias information changed as necessary. Other information, such and alias information changed as necessary. Other information, such
as the expiration time might also change, but the set of link as the expiration time might also change, but the set of link
relations and properties would be the same with either response. relations and properties would be the same with either response.
3.2. Identity Provider Discovery for OpenID Connect 3.2. Identity Provider Discovery for OpenID Connect
Suppose Carol wishes to authenticate with a web site she visits using Suppose Carol wishes to authenticate with a web site she visits using
OpenID Connect [18]. She would provide the web site with her OpenID OpenID Connect [18]. She would provide the web site with her OpenID
Connect identifier, say carol@example.com. The visited web site Connect identifier, say carol@example.com. The visited web site
would perform a WebFinger query looking for the OpenID Connect would perform a WebFinger query looking for the OpenID Connect
skipping to change at page 5, line 39 skipping to change at page 5, line 45
resource=acct%3Acarol%40example.com& resource=acct%3Acarol%40example.com&
rel=http%3A%2F%2Fopenid.net%2Fspecs%2Fconnect%2F1.0%2Fissuer rel=http%3A%2F%2Fopenid.net%2Fspecs%2Fconnect%2F1.0%2Fissuer
HTTP/1.1 HTTP/1.1
Host: example.com Host: example.com
The server might respond with a JRD like this: The server might respond with a JRD like this:
{ {
"expires" : "2012-11-16T19:41:35Z", "expires" : "2012-11-16T19:41:35Z",
"subject" : "acct:carol@example.com", "subject" : "acct:carol@example.com",
"aliases" :
[
"http://www.example.com/~carol/"
],
"properties" :
{
"http://example.com/ns/role/" : "employee"
},
"links" : "links" :
[ [
{ {
"rel" : "http://openid.net/specs/connect/1.0/issuer", "rel" : "http://openid.net/specs/connect/1.0/issuer",
"href" : "https://openid.example.com/" "href" : "https://openid.example.com"
} }
] ]
} }
Since the "rel" parameter only filters the link relations returned by Since the "rel" parameter only filters the link relations returned by
the server, other name/value pairs in the response, including any the server, other name/value pairs in the response, including any
aliases or properties, would be returned. Also, since support for aliases or properties, would be returned. Also, since support for
the "rel" parameter is optional, the client must not assume the the "rel" parameter is optional, the client must not assume the
"links" array will contain only the requested link relation. "links" array will contain only the requested link relation.
3.3. Auto-Configuration of Email Clients 3.3. Auto-Configuration of Email Clients
skipping to change at page 7, line 27 skipping to change at page 7, line 22
would like to check the current toner level for a particular printer would like to check the current toner level for a particular printer
identified via the URI device:p1.example.com. While the "device" URI identified via the URI device:p1.example.com. While the "device" URI
scheme is not presently specified, we use it here for illustrative scheme is not presently specified, we use it here for illustrative
purposes. purposes.
Following the procedures similar to those above, a query may be Following the procedures similar to those above, a query may be
issued to get link relations specific to this URI like this: issued to get link relations specific to this URI like this:
GET /.well-known/webfinger? GET /.well-known/webfinger?
resource=device%3Ap1.example.com HTTP/1.1 resource=device%3Ap1.example.com HTTP/1.1
Host: example.com Host: p1.example.com
The link relations that are returned for a device may be quite The link relations that are returned for a device may be quite
different than those for user accounts. Perhaps we may see a different than those for user accounts. Perhaps we may see a
response like this: response like this:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Access-Control-Allow-Origin: * Access-Control-Allow-Origin: *
Content-Type: application/json; charset=UTF-8 Content-Type: application/json; charset=UTF-8
{ {
skipping to change at page 18, line 4 skipping to change at page 17, line 50
or due to malicious behavior on the part of the server administrator. or due to malicious behavior on the part of the server administrator.
As with any information service available on the Internet, users As with any information service available on the Internet, users
should wary of information received from untrusted sources. should wary of information received from untrusted sources.
9. IANA Considerations 9. IANA Considerations
This specification registers the "webfinger" well-known URI in the This specification registers the "webfinger" well-known URI in the
Well-Known URI Registry as defined by [3]. Well-Known URI Registry as defined by [3].
URI suffix: webfinger URI suffix: webfinger
Change controller: IETF
Change controller: IETF
Specification document(s): RFC QQQ Specification document(s): RFC QQQ
Related information: The response from WebFinger server will be a Related information: The response from WebFinger server will be a
JSON Resource Descriptor (JRD) as described in section 4.4 of RFC JSON Resource Descriptor (JRD) as described in section 4.4 of RFC
QQQ. QQQ.
[RFC EDITOR: Please replace "QQQ" references in this section with the [RFC EDITOR: Please replace "QQQ" references in this section with the
number for this RFC.] number for this RFC.]
10. Acknowledgments 10. Acknowledgments
skipping to change at page 18, line 49 skipping to change at page 18, line 47
Object Notation (JSON)", RFC 4627, July 2006. Object Notation (JSON)", RFC 4627, July 2006.
[6] Berners-Lee, T., Fielding, R., and Masinter, L., "Uniform [6] Berners-Lee, T., Fielding, R., and Masinter, L., "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986,
January 2005. January 2005.
[7] Duerst, M., "Internationalized Resource Identifiers (IRIs)", [7] Duerst, M., "Internationalized Resource Identifiers (IRIs)",
RFC 3987, January 2005. RFC 3987, January 2005.
[8] Saint-Andre, P., "The 'acct' URI Scheme", draft-ietf-appsawg- [8] Saint-Andre, P., "The 'acct' URI Scheme", draft-ietf-appsawg-
acct-uri-01, October 2012. acct-uri-02, December 2012.
[9] Van Kesteren, A., "Cross-Origin Resource Sharing", W3C CORS [9] Van Kesteren, A., "Cross-Origin Resource Sharing", W3C CORS
http://www.w3.org/TR/cors/, July 2010. http://www.w3.org/TR/cors/, July 2010.
[10] IANA, "Link Relations", http://www.iana.org/assignments/link- [10] IANA, "Link Relations", http://www.iana.org/assignments/link-
relations/. relations/.
[11] IANA, "MIME Media Types", [11] IANA, "MIME Media Types",
http://www.iana.org/assignments/media-types/index.html. http://www.iana.org/assignments/media-types/index.html.
 End of changes. 17 change blocks. 
28 lines changed or deleted 25 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/