注意
本文档适用于 Ceph 的开发版本。
认证
需要身份验证的 Swift API 请求必须在请求头中包含 X-Storage-Token 身份验证令牌。该令牌可以从 RADOS Gateway 或其他身份验证器获取。要从 RADOS Gateway 获取令牌,您必须创建一个用户。例如
sudo radosgw-admin user create --subuser="{username}:{subusername}" --uid="{username}"
--display-name="{Display Name}" --key-type=swift --secret="{password}" --access=full
有关 RADOS Gateway 管理的详细信息,请参阅 radosgw-admin。
注意
对于那些习惯于 Swift API 的人来说,这实现了 Swift auth v1.0 API,因此上面的 {username} 通常等同于 Swift account,而 {subusername} 是该帐户下的一个用户。
身份验证获取
要对用户进行身份验证,请发出一个请求,在请求头中包含 X-Auth-User 和 X-Auth-Key。
语法
GET /auth HTTP/1.1
Host: swift.radosgwhost.com
X-Auth-User: johndoe
X-Auth-Key: R7UUOLFDI2ZI9PRCQ53K
请求头
X-Auth-User
- 描述:
要进行身份验证的关键 RADOS GW 用户名。
- 类型:
String
- 必需:
是
X-Auth-Key
- 描述:
与 RADOS GW 用户名关联的密钥。
- 类型:
String
- 必需:
是
响应头
来自服务器的响应应包含一个 X-Auth-Token 值。响应还可能包含一个 X-Storage-Url,它提供 API 文档中其他请求中指定的 {api version}/{account} 前缀。
X-Storage-Token
- 描述:
为请求中指定的
X-Auth-User提供的授权令牌。- 类型:
String
X-Storage-Url
- 描述:
用户的 URL 和
{api version}/{account}路径。- 类型:
String
典型的响应如下所示
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