Re: [OAUTH-WG] Understanding how OpenSocial uses OAuth 1.0a

Eric Sachs <esachs@google.com> Tue, 16 March 2010 18:37 UTC

Return-Path: <esachs@google.com>
X-Original-To: oauth@core3.amsl.com
Delivered-To: oauth@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 6022C3A69F1 for <oauth@core3.amsl.com>; Tue, 16 Mar 2010 11:37:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.976
X-Spam-Level:
X-Spam-Status: No, score=-105.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
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 vLlmUTz8J7i1 for <oauth@core3.amsl.com>; Tue, 16 Mar 2010 11:37:40 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id 94B373A69CD for <oauth@ietf.org>; Tue, 16 Mar 2010 11:37:31 -0700 (PDT)
Received: from hpaq6.eem.corp.google.com (hpaq6.eem.corp.google.com [10.3.21.6]) by smtp-out.google.com with ESMTP id o2GIbV8c004115 for <oauth@ietf.org>; Tue, 16 Mar 2010 11:37:32 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1268764652; bh=/ffCscyXTqXdBPWLRtljDSBsCyk=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=Qc7phZ/l1v0qDgmZ2zKUUwZFj7rASjmZFVwF1R1k4SVVVV0wfZKH9x6+zjXx0MN/M IGcCsAuBvWlEyK3ogjBQQ==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: cc:content-type:x-system-of-record; b=bI9Ve8RfyaeQMfdWZTV22sD98uvweUKoE7K7z1TOT8aBsYw+KpVo345xwNsg8m5Xc iCQ4OcxGXCErnVknhcuSQ==
Received: from vws6 (vws6.prod.google.com [10.241.21.134]) by hpaq6.eem.corp.google.com with ESMTP id o2GIbU8f007160 for <oauth@ietf.org>; Tue, 16 Mar 2010 19:37:30 +0100
Received: by vws6 with SMTP id 6so97695vws.22 for <oauth@ietf.org>; Tue, 16 Mar 2010 11:37:30 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.220.127.81 with SMTP id f17mr32889vcs.201.1268764647319; Tue, 16 Mar 2010 11:37:27 -0700 (PDT)
In-Reply-To: <fd6741651003161112y2eceb494ue28db2644ba1d32a@mail.gmail.com>
References: <fd6741651003161112y2eceb494ue28db2644ba1d32a@mail.gmail.com>
Date: Tue, 16 Mar 2010 11:37:27 -0700
Message-ID: <c4161f511003161137l49dd2786yba85661f1729c954@mail.gmail.com>
From: Eric Sachs <esachs@google.com>
To: David Recordon <recordond@gmail.com>
Content-Type: multipart/alternative; boundary="0016e68e8ba51b6b810481ef4a7e"
X-System-Of-Record: true
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Understanding how OpenSocial uses OAuth 1.0a
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/oauth>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Mar 2010 18:37:42 -0000

Here is one of the original writeups of OpenSocial + 2LO with a scanned
napkin drawing :-)

http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi

On Tue, Mar 16, 2010 at 11:12 AM, David Recordon <recordond@gmail.com>wrote:

> Kevin Marks has been bugging me for awhile to understand how
> OpenSocial makes use of two-legged OAuth.  I reached out to the team
> and here's their description (via Evan Gilbert).  In general it seems
> like they're more making use of OAuth's RSA signature mechanism rather
> than the user authorization and access token flows.
>
> 1. Developer (let's say iLike) creates a gadget that runs in multiple
> containers.
> 2. User Bob is views iLike gadget on MySpace and the iLike gadget
> needs to make a request back to iLike's home server to get private
> data (let's say the user's favorite bands)
> 3. iLike gadget makes a JavaScript call to get this data from iLike
> servers. This call uses a gadgets API (gadgets.io.makeRequest) that
> proxies the request through MySpace servers.
> 4. MySpace adds validated URL parameters to the request - most
> importantly opensocial_viewer_id and opensocial_app_url. MySpace then
> signs the request and then forwards on the request to iLike's servers.
> 4.5 iLike can choose to sign request with MySpace's private key or
> with a shared secret between iLike & MySpace.
> 6. iLike verifies the signed request, using MySpace's public key or
> the shared secret.
> 7. iLike checks verifies opensocial_app_url to make sure this isn't a
> different gadget asking for data.
> 8. Lastly iLike looks up user data based on opensocial_viewer_id and
> returns it back to the gadget.
>
> Intro to signed requests:
> http://wiki.opensocial.org/index.php?title=Introduction_To_Signed_Requests
> Validation of signed requests:
> http://wiki.opensocial.org/index.php?title=Validating_Signed_Requests
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>