================
 Authentication
================

Swift API requests that require authentication must contain an
``X-Storage-Token`` authentication token in the request header. 
The token may be retrieved from RADOS Gateway, or from another authenticator.
To obtain a token from RADOS Gateway, you must create a user. For example:: 

    sudo radosgw-admin user create --subuser="{username}:{subusername}" --uid="{username}" 
    --display-name="{Display Name}" --key-type=swift --secret="{password}" --access=full

For details on RADOS Gateway administration, see `radosgw-admin`_. 

.. _radosgw-admin: ../../../man/8/radosgw-admin/ 

Auth Get
--------

To authenticate a user, make a request containing an ``X-Auth-User`` and a
``X-Auth-Key`` in the header.

Syntax
~~~~~~

::

    GET /auth HTTP/1.1
    Host: swift.radosgwhost.com
    X-Auth-User: johndoe
    X-Auth-Key: R7UUOLFDI2ZI9PRCQ53K

Request Headers
~~~~~~~~~~~~~~~

``X-Auth-User`` 

:Description: The key RADOS GW username to authenticate.
:Type: String
:Required: Yes

``X-Auth-Key`` 

:Description: The key associated to a RADOS GW username.
:Type: String
:Required: Yes


Response Headers
~~~~~~~~~~~~~~~~

The response from the server should include an ``X-Auth-Token`` value. The 
response may also contain a ``X-Storage-Url`` that provides the 
``{api version}/{account}`` prefix that is specified in other requests
throughout the API documentation.


``X-Storage-Token`` 

:Description: The authorization token for the ``X-Auth-User`` specified in the request.
:Type: String


``X-Storage-Url`` 

:Description: The URL and ``{api version}/{account}`` path for the user.
:Type: String

A typical response looks like this:: 

	HTTP/1.1 204 No Content
	Date: Mon, 16 Jul 2012 11:05:33 GMT
  	Server: swift
  	X-Storage-Url: https://swift.radosgwhost.com/v1/ACCT-12345
	X-Auth-Token: UOlCCC8TahFKlWuv9DB09TWHF0nDjpPElha0kAa
	Content-Length: 0
    Content-Type: text/plain; charset=UTF-8
