Merge branch 'master' into 2257-inequality-conditions
[arvados.git] / doc / api / authentication.html.textile.liquid
1 ---
2 layout: default
3 navsection: api
4 navmenu: Concepts
5 title: Authentication
6
7 ...
8
9
10
11 Every API request (except the authentication API itself) includes an @access_token@ parameter.
12
13 table(table table-bordered table-condensed).
14 |Name|Type|Description|
15 |access_token|string|Access token returned by OAuth 2.0 authorization procedure|
16
17 Many resources contain "actor" attributes like @modified_by@.  An @access_token@ uniquely identifies a client (application or project) and an end-user.
18
19 table(table table-bordered table-condensed).
20 |Name|Type|Description|
21 |modified_by_client_uuid|string|ID of API client|
22 |modified_by_user_uuid|string|ID of authenticated user|
23
24 h2. Authorizing a client application
25
26 The Arvados API uses the "OAuth 2.0 protocol":http://tools.ietf.org/html/draft-ietf-oauth-v2-22 for authentication and authorization.
27
28 h3. Register your client application
29
30 Before an application can run on an Arvados cloud, it needs to be registered with the cloud. 
31
32 That registration yields a @client_id@ and a @client_secret@. 
33
34 h3. Obtain an access code
35
36 A client obtains an access code by means of a standard Oauth 2.0 flow. The access code is granted to it by an authorized user. The client requests one or more scopes, which translate to a set of requested permissions (reading, writing, etc). Unless the access is to be short-lived, a refresh token is also granted to the application. 
37
38 h3. Refresh the access code (optional)
39
40 Access codes have a limited lifetime. A refresh token allows an application to request a new access token.