Internet DRAFT - draft-zhou-oauth-owner-auth
draft-zhou-oauth-owner-auth
OAuth S. Zhou
Internet-Draft ZTE Corporation
Intended status: Standards Track December 18, 2012
Expires: June 21, 2013
Owner Authorization Grant Type Profile for OAuth 2.0
draft-zhou-oauth-owner-auth-01
Abstract
This document proposes to let resource owners directly authorize a
relying party to access resources stored in other resource servers .
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 21, 2013.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Zhou Expires June 21, 2013 [Page 1]
Internet-Draft draft-zhou-oauth-owner-auth-00 December 2012
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Potential Use Cases . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Direct Authorization . . . . . . . . . . . . . . . . . . . 4
2.2. Proxy Authorization . . . . . . . . . . . . . . . . . . . . 5
3. Owner_authorization Grant . . . . . . . . . . . . . . . . . . . 5
4. Owner_authorization_code and Owner_authorization_type . . . 7
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
5.1. Sub-Namespace Registration of
urn:ietf:params:oauth:grant-type:owner_authorization . . . 8
5.2. owner_authorization_code Parameter Registration . . . . . . 8
5.3. owner_authorization_type Parameter Registration . . . . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 9
7. Normative References . . . . . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 9
Zhou Expires June 21, 2013 [Page 2]
Internet-Draft draft-zhou-oauth-owner-auth-00 December 2012
1. Introduction
The OAuth 2.0 authorization framework [I-D.ietf-oauth-v2] enables a
client (a third-party application ) to obtain limited access to an
HTTP service, where resources controlled by the resource owners are
hosted, in a way resource owners don't have to leak their credentials
with the resource servers to clients, instead clients are granted
time limited access tokens from interacting with resource owners and
an authorization server.
There are four basic grant types defined in [I-D.ietf-oauth-v2]:
"authorization_code","password","client_credentials","refresh_token".
The grant type of authorization_code enables a client to get an
authorization code from the authorization server, and trades in an
access token from the authorization server later by presenting the
authorization code. For the grant type of password, a client uses
resource owner's password credential as an authorization code to get
an access token from the authorization server. It is used when
clients are trusted by resource owners so that resource owners can
leak their password credentials to them. For the grant type of
client_credentials, a client uses the credential of itself as an
authorization code to get an access token from the authorization
server. It is used when clients have control of the resources or
resource owners have authorized the authorization servers. The grant
type of refresh_token is used when clients want to have a new access
token by presenting a refresh token as an authorization code.
The grant type of authorization_code is representative of all the
OAuth's grant types. But it requires multiple interactive exchanges
between resource owners and authorization servers before issuing
authorization codes. Sometime this interactive procedure may not be
necessary. And it is more natural to let a resource owner rather
than an authorization server to issue authorization codes, after all
the access to the resources should be determined by the resource
owners ultimately and entirely. In this document, we define a grant
type "owner_authorization" that allows resourse owners to authorize
clients directly, and parameters "owner_authorization_code",
"owner_authorization_type" that allow for detailed definition and
expansion of the grant type of owner_authorization.
The OAuth 2.0 Assertion Profile [I-D.ietf-oauth-assertions] is an
abstract extension to OAuth 2.0 that provides a general framework for
the use of Assertions as client credentials and/or authorization
grants with OAuth 2.0. This document could be viewed as a specific
profile of Assertion Framework to deploy assertions issued by
Resource owners as authorization grant.
Zhou Expires June 21, 2013 [Page 3]
Internet-Draft draft-zhou-oauth-owner-auth-00 December 2012
1.1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Potential Use Cases
2.1. Direct Authorization
Description:
Alice has some data stored at a resource server www.
resourceserver.example , she wants a third service provider
www.client.example to access some of the data according to her
authorization. But she is reluctent to input her her password or
other credential online to the Authorization Server although she
knows TLS is in place between her computer terminal and AS, she
whould like to run an authorization grant generation programm locally
so as to keep confidentiality ty of her credential. The
authorziation grant generation programm could be downloaded from AS.
Pre-conditions:
o Alice and AS has a shared secret key
o The application at www.client.example is not capable of validating
its authorization grant.
Post-conditions:
A successful procedure results in the application at
www.client.example receiving an access token after authenticating to
the authorization server and presenting the authorization grant
obtained from Alice.
Requirements:
o Authentication of the application at www.client.example to the
authorization server is required
o The authorization server must be capable of validating
authorization grant presented by the application running at
www.client.example
Zhou Expires June 21, 2013 [Page 4]
Internet-Draft draft-zhou-oauth-owner-auth-00 December 2012
2.2. Proxy Authorization
Description:
Alice has her financial data stored at a financial company www.
financial.example, her lawyer needs to obtain authenticated access to
some of her financial data to run applications at www.lawyer.example.
Alice and the lawyer have rather long term trust relationship, but
still Alice is not willing to leak her secret credential to the
lawyer. The applications at www.lawyer.example may change over the
time, Alice is not willing to be bothered by generating assertion
each time a new application comes out.
Pre-conditions:
o Alice has a secret private key and corresponding public key , Alice
could generate a proxy private key for her lawyer
o Lawyer could generate a proxy signature based on his proxy private
key for any application at www.lawyer.example that is in the scope
(the scope could be as broad as any application at the website
www.lawyer.example) of the proxy private key.
Post-conditions:
A successful procedure results in the application at
www.lawyer.example receiving an access token after presenting a proxy
signature to the authorization server specified by Alice.
Requirements:
o Authentication of the application at www.lawyer.example to the
application at www.financial.example is required
o The authorization server must be capable of validating proxy
signature presented by the application running at www.lawyer.example
3. Owner_authorization Grant
The owner_authorization grant type can be used to obtain both access
tokens and refresh tokens for confidential clients.
Zhou Expires June 21, 2013 [Page 5]
Internet-Draft draft-zhou-oauth-owner-auth-00 December 2012
+----------+
| resource |
| owner |
+----------+
^
|
(B)
|
v
+----------+ +---------------+
| -+----(A2)- Client Identifier ---->| |
| User- | &redirection URI | Authorization |
| Agent +<---(B)-- Script----------------<| Server |
+-|----|---+ +---------------+
| | ^ v
(A1) (C) Delegation code | |
| | | |
^ v | |
+---------+ | |
| |>--(D)--(Derivative) Delegation Code--' |
| Client | & Redirection URI |
| | |
| |<---(E)----- Access Token -------------------'
+---------+ (w/ Optional Refresh Token)
Figure 1
The flow illustrated in Figure 1 includes the following steps:
(A1) The client initiates the flow by directing the resource owner's
user-agent to the authorization endpoint. The client includes its
client identifier, requested scope, local state, and a redirection
URI to which the resource owner will send the delegation code back
once access is granted (or denied).
(A2) The user-agent is redirected to Authorization Server.
(B) The redirection from user-agent leads it to download script from
AS, some information in the redirection will be extracted into the
script and user is prompted to input password or private key.
(C) The resource owner fills in required items through Script and
generates a delegation code,sends the delegation code to client
(redirection URI) through user-agent.
(D) The client requests an access token from the authorization
server's token endpoint by including the delegation code received in
the previous step, or a derivative delegation code calculated from
Zhou Expires June 21, 2013 [Page 6]
Internet-Draft draft-zhou-oauth-owner-auth-00 December 2012
delegation code. When making the request, the client authenticates
with the authorization server.
(E) The authorization server authenticates the client, validates the
(derivative) delegation code. If valid, the authorization server
responds back with an access token and optional refresh token.
4. Owner_authorization_code and Owner_authorization_type
Parameters owner_authorization_type and owner_authorization_code are
used to define variable implementations of owner_authorization grant.
For example, an owner_authorization_type="signature" could be
defined, and the owner_authorization_code can include (client
identity, resource owner identity, resource identity, authorization
time period, signature), where signature is a digital signature
computed on all the other information concatenated together using the
private key of the resource owners. Authorization server verifies
the signature, if valid, generates an access token and sends to the
client.
An owner_authorization_type="proxy_signature" could be defined, and
the owner_authorization_code can include (client identity, resource
owner identity, resource identity, authorization time period, psig),
where psig is a proxy signature computed on all the other information
concatenated together and the proxy private key assigned to clients
by resource owners . Authorization server verifies the proxy
signature, if valid, generates an access token and sends to the
client.
An owner_authorization_type="mac1" could be defined, and the
owner_authorization_code can include (client identity, resource owner
identity, resource identity, authorization time period, random token,
mac1), where mac1 is a message authentication code computed on all
the other information concatenated together and the secret key shared
between resource owner and authorization server. Authorization
server recalculates the message authentication code, if the result
equals mac1, generates an access token and sends to the client.
An owner_authorization_type="mac2" could be defined, and the
owner_authorization_code can include (client identity, resource owner
identity, resource identity, authorization time period, com, mac2,
PoK), where mac2 is a message authentication code computed on all the
other information concatenated together and the secret key shared
between resource owner and authorization server, and com is the
result of comitment(random token, client secret key) where client
secret key is the secret between clients and AS, PoK is a proof of
Zhou Expires June 21, 2013 [Page 7]
Internet-Draft draft-zhou-oauth-owner-auth-00 December 2012
knowledge of client secret key in com. Authorization server
recalculates the message authentication code, if the result equals
mac2, then continue to verify PoK , if valid, generates an access
token and sends to the client.
5. IANA Considerations
5.1. Sub-Namespace Registration of
urn:ietf:params:oauth:grant-type:owner_authorization
This is a request to IANA to register the value "grant-
type:owner_authorization" in the registry urn:ietf:params:oauth
established in [I-D.ietf-oauth-urn-sub-ns]
o URN: urn:ietf:params:oauth:grant- type:owner_authorization
o Common Name: Owner Authorization Grant Type Profile for OAuth 2.0
o Change controller: IETF
o Specification Document: this document
5.2. owner_authorization_code Parameter Registration
The following is the parameter registration request for the
"owner_authorization_code" parameter according to [I-D.ietf-oauth-v2]
o Parameter name: owner_authorization_code
o Parameter usage location: token request
o Change controller: IETF
o Specification document(s): [[this document]]
5.3. owner_authorization_type Parameter Registration
The following is the parameter registration request for the
"owner_authorization_type" parameter according to
[I-D.ietf-oauth-v2],
o Parameter name: owner_authorization_type
o Parameter usage location: token request
o Change controller: IETF
Zhou Expires June 21, 2013 [Page 8]
Internet-Draft draft-zhou-oauth-owner-auth-00 December 2012
o Specification document(s): [[this document]]
6. Security Considerations
TBD.
7. Normative References
[I-D.ietf-oauth-urn-sub-ns]
Campbell, B. and H. Tschofenig, "An IETF URN Sub-Namespace
for OAuth", draft-ietf-oauth-urn-sub-ns-06 (work in
progress), July 2012.
[I-D.ietf-oauth-v2]
Hardt, D., "The OAuth 2.0 Authorization Framework",
draft-ietf-oauth-v2-31 (work in progress), August 2012.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4851] Cam-Winget, N., McGrew, D., Salowey, J., and H. Zhou, "The
Flexible Authentication via Secure Tunneling Extensible
Authentication Protocol Method (EAP-FAST)", RFC 4851,
May 2007.
[RFC5281] Funk, P. and S. Blake-Wilson, "Extensible Authentication
Protocol Tunneled Transport Layer Security Authenticated
Protocol Version 0 (EAP-TTLSv0)", RFC 5281, August 2008.
Author's Address
Sujing Zhou
ZTE Corporation
No.68 Zijinghua Rd. Yuhuatai District
Nanjing, Jiang Su 210012
R.R.China
Email: zhou.sujing@zte.com.cn
Zhou Expires June 21, 2013 [Page 9]