Re: [mmox] where is identity @ in all this?

"Hurliman, John" <john.hurliman@intel.com> Fri, 20 February 2009 18:24 UTC

Return-Path: <john.hurliman@intel.com>
X-Original-To: mmox@core3.amsl.com
Delivered-To: mmox@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 46D2A3A6969 for <mmox@core3.amsl.com>; Fri, 20 Feb 2009 10:24:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.499
X-Spam-Level:
X-Spam-Status: No, score=-6.499 tagged_above=-999 required=5 tests=[AWL=0.100, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id o52IMsoGeEtZ for <mmox@core3.amsl.com>; Fri, 20 Feb 2009 10:24:39 -0800 (PST)
Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by core3.amsl.com (Postfix) with ESMTP id 195223A68AC for <mmox@ietf.org>; Fri, 20 Feb 2009 10:24:38 -0800 (PST)
Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 20 Feb 2009 10:24:53 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.38,242,1233561600"; d="scan'208";a="112789172"
Received: from rrsmsx602.amr.corp.intel.com ([10.31.0.33]) by azsmga001.ch.intel.com with ESMTP; 20 Feb 2009 10:24:53 -0800
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx602.amr.corp.intel.com ([10.31.0.33]) with mapi; Fri, 20 Feb 2009 11:24:53 -0700
From: "Hurliman, John" <john.hurliman@intel.com>
To: "mmox@ietf.org" <mmox@ietf.org>
Date: Fri, 20 Feb 2009 11:24:45 -0700
Thread-Topic: [mmox] where is identity @ in all this?
Thread-Index: AcmS5pAl/dLHTon1TTO5wbiAG/5HJgAndaBA
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D502630AC@rrsmsx506.amr.corp.intel.com>
References: <1E40CE05-15D1-4970-9B0F-CD4AD11A074A@lindenlab.com> <62BFE5680C037E4DA0B0A08946C0933D501FDC38@rrsmsx506.amr.corp.intel.com> <499C5415.7060400@cox.net> <62BFE5680C037E4DA0B0A08946C0933D501FE124@rrsmsx506.amr.corp.intel.com> <2bd5b7f10902181356l64dd8366n2b5e57ef4242ae0f@mail.gmail.com> <676211.48955.qm@web82608.mail.mud.yahoo.com> <499CA916.1090008@gmail.com> <488F29D4-F071-4725-B1B6-FFC17C220F8D@duke.edu> <62BFE5680C037E4DA0B0A08946C0933D501FE800@rrsmsx506.amr.corp.intel.com> <499DE5A4.50705@comlounge.net>
In-Reply-To: <499DE5A4.50705@comlounge.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-cr-puzzleid: {192BED1E-70A5-4B98-A63E-31ED407E6164}
x-cr-hashedpuzzle: gCQ= Am/i AzX1 BmYY C3/L C46V DYhB FDm1 GuT1 G+us Hjqn H2eI JMfj KKPU KuZ7 K2iM; 1; bQBtAG8AeABAAGkAZQB0AGYALgBvAHIAZwA=; Sosha1_v1; 7; {192BED1E-70A5-4B98-A63E-31ED407E6164}; agBvAGgAbgAuAGgAdQByAGwAaQBtAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAA==; Fri, 20 Feb 2009 18:24:45 GMT; UgBFADoAIABbAG0AbQBvAHgAXQAgAHcAaABlAHIAZQAgAGkAcwAgAGkAZABlAG4AdABpAHQAeQAgAEAAIABpAG4AIABhAGwAbAAgAHQAaABpAHMAPwA=
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [mmox] where is identity @ in all this?
X-BeenThere: mmox@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Massively Multi-participant Online Games and Applications <mmox.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/mmox>, <mailto:mmox-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmox>
List-Post: <mailto:mmox@ietf.org>
List-Help: <mailto:mmox-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmox>, <mailto:mmox-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 Feb 2009 18:24:40 -0000

>-----Original Message-----
>From: Christian Scholz [mailto:cs@comlounge.net]
>Sent: Thursday, February 19, 2009 3:05 PM
>To: Hurliman, John
>Cc: mmox@ietf.org
>Subject: Re: [mmox] where is identity @ in all this?
>
>Hurliman, John schrieb:
>> That is the identity proposal I'm working on. OpenID + OpenID Token
>Exchange* + OpenID Attribute Exchange == VW Identity Service.
>>
>> * OAuth was specifically designed for a three legged scenario, and
>when you start adding in more services such as content, messaging,
>voice, etc. it no longer becomes feasible. OpenID Token Exchange solves
>this problem nicely though.
>
>Can you elaborate what the specific problem with OAuth is? Is it that
>you'd need to authorize each and every service as a user? (the same
>problem is coming up on the web as well though if you think about data
>in all sorts of places you might want to give somebody access to)
>

OAuth seems to be solving a different problem. OAuth is great for putting identity+authorization into a token, but in many cases (at least in the virtual world scenario) your identity provider and the authorization provider for a resource are two separate domains. What is needed is a way to pass around identity in a token, which is what the OpenID Token Exchange protocol does. The fact that every authorized token request in OAuth flows through the end user is great for authorization requests and the use cases it was designed for, but makes it a non starter for providing a temporary identity-only token between services.

The use case I've drawn up for virtual worlds involves a user, an identity provider, a content provider, and a world simulator (doesn't matter how many separate services this is, assume a single trust domain for now). The user tells the world simulator that it has an identity at http://identityprovider.com/user which initiates the OpenID authentication sequence. Logging into a world simulator is implicitly giving it access to a minimum set of your profile information on the identity provider and appearance data on the content provider. This is facilitated with an identity token request from the world simulator to the identity service, and that token is passed to the content service. The content service can then confirm the validity of the token and grant access to a minimum set of content.

OAuth definitely has wider adoption than OpenID Token Exchange, and if you see a way to make this scenario work with OAuth (without too many contortions) please let me know.

>And what are you planning to use Attribute Exchange (AX) for? We
>discussed using this in the DataPortability Group a while back for
>storing the URL to your service catalogue that way but the problem was a
>bit lack of adoption. I also tried to do some tests with myopenid but it
>seemed that I couldn't store new fields.
>
>If it's for profile retrieval the OpenSocial REST API is IMHO a better
>fit as it's a) easier to implement and b) more discussed and already
>adopted by e.g. myspace (and yahoo is talking about it).
>

I doubt any identity provider will let you start storing arbitrary data on their server. My understanding of AX is that identity providers can map their existing identity+profile information to well recognized AX fields and provide whatever information they have. Avatars will likely require unique fields, such as the URL of appearance data. If OpenSocial provides a better or better adopted way of doing that then it's worth investigation. It might also mean that it's premature to standardize on one or the other. That seems to leave the options: 1) leave attribute retrieval out of scope (doesn't do much to solve interoperability), 2) make up our own standard based on LLSD/LLIDL (makes the situation even worse, and goes against the proposed goals of the draft MMOX charter), or 3) support multiple implementations (increases the complexity of the spec, and creates excess cruft once one of the competing proposals dies out).