[OAUTH-WG] Securing APIs with OAuth 2.0

Pete Clark <pete@appmuscle.com> Thu, 01 March 2012 02:44 UTC

Return-Path: <pete@appmuscle.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 843FC21F858E for <oauth@ietfa.amsl.com>; Wed, 29 Feb 2012 18:44:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.203
X-Spam-Level:
X-Spam-Status: No, score=-2.203 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, MIME_QP_LONG_LINE=1.396, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0xw73C1QJRLe for <oauth@ietfa.amsl.com>; Wed, 29 Feb 2012 18:44:56 -0800 (PST)
Received: from mail-gx0-f172.google.com (mail-gx0-f172.google.com [209.85.161.172]) by ietfa.amsl.com (Postfix) with ESMTP id 1510721F858D for <oauth@ietf.org>; Wed, 29 Feb 2012 18:44:55 -0800 (PST)
Received: by ggmi1 with SMTP id i1so42967ggm.31 for <oauth@ietf.org>; Wed, 29 Feb 2012 18:44:55 -0800 (PST)
Received-SPF: pass (google.com: domain of pete@appmuscle.com designates 10.101.129.7 as permitted sender) client-ip=10.101.129.7;
Authentication-Results: mr.google.com; spf=pass (google.com: domain of pete@appmuscle.com designates 10.101.129.7 as permitted sender) smtp.mail=pete@appmuscle.com
Received: from mr.google.com ([10.101.129.7]) by 10.101.129.7 with SMTP id g7mr1402628ann.12.1330569895746 (num_hops = 1); Wed, 29 Feb 2012 18:44:55 -0800 (PST)
Received: by 10.101.129.7 with SMTP id g7mr1106654ann.12.1330569895679; Wed, 29 Feb 2012 18:44:55 -0800 (PST)
Received: from [10.44.251.246] (mobile-198-228-233-243.mycingular.net. [198.228.233.243]) by mx.google.com with ESMTPS id n72sm1112222yhh.21.2012.02.29.18.44.53 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 29 Feb 2012 18:44:55 -0800 (PST)
From: Pete Clark <pete@appmuscle.com>
Content-Type: text/plain; charset="us-ascii"
X-Mailer: iPhone Mail (9A405)
Message-Id: <B691F720-809F-4A9E-8C8E-6BF98EE68F07@appmuscle.com>
Date: Wed, 29 Feb 2012 21:44:48 -0500
To: "oauth@ietf.org" <oauth@ietf.org>
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (1.0)
X-Gm-Message-State: ALoCoQmIeS06jDIMD4Oq7t75Y/zewq0+GsmzRWEswb9khbQD9PV7fFsMiEqzLmSuD5DBCuqaArOe
Subject: [OAUTH-WG] Securing APIs with OAuth 2.0
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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: Thu, 01 Mar 2012 02:45:57 -0000

Hey all, I've joined the list because I'd like to use OAuth 2 to implement security for a new set of REST APIs I'm developing for a client.  I'm coding with PHP, but my questions are more general.  Right now, there will be only one web site that uses the APIs, in a server-to-server fashion, and currently we don't have a need for a third party application to gain access to user data, such that a user would need to authorize that app.  We do, however, want to have that ability down the road.  My question is, can I still use OAuth 2 in some way to implement our first phase?  From what I've read, it seems like the "client credentials" flow is the one I want to use for now.  Can someone:

1) Confirm that that's what I should use for this first phase?
2) Point me to an implementation of this flow (in any language) that I could use or port to PHP?  I've found some libraries for php but can't really tell, being new, if they offer the "client credentials" flow
3) Answer one more question.. Will using the client credentials flow now allow me to move to one of the user-authorizes-external-app flows down the road without having to reimplement or throw away the client credentials flow code?

I apologize for all the questions, but these would really help point me in the right direction.. Thank you for reading!

Sincerely,
Pete