身份验证

对象存储帐户的所有者控制对该帐户及其容器和对象的访问。所有者是指拥有该租户的“admin”角色的用户。租户也称为项目或帐户。作为帐户所有者,您可以修改帐户元数据以及创建、修改和删除容器和对象。

为了将您识别为帐户所有者,请在 API 请求的 ‘’X-Auth-Token’’ 标头中包含身份验证令牌。

根据 ‘’X-Auth-Token’’ 标头中的令牌值,将发生以下操作之一

  • ‘’X-Auth-Token’’ 包含帐户所有者的令牌。

    请求被允许,并具有完全访问权限以更改帐户。

  • 省略了 ‘’X-Auth-Token’’ 标头,或者它包含非所有者的令牌或无效令牌。

    请求将以 401 未授权或 403 禁止响应失败。

    除非访问控制列表 (ACL) 明确授予访问权限,否则您无法访问帐户或容器。

    帐户所有者可以通过访问控制列表 (ACL) 向用户授予帐户和容器访问权限。

此外,可以在 ‘’X-Service-Token’’ 标头中提供额外的令牌。有关如何使用此令牌的更多信息,请参阅 将 Swift 作为服务数据的后端存储

以下列表描述了您可以与对象存储一起使用的身份验证服务

  • OpenStack Identity (keystone):对于对象存储,帐户与项目或租户 ID 同义。

  • Tempauth 中间件:对象存储包含此中间件。用户和帐户管理在对象存储本身中执行。

  • Swauth 中间件:存储在 github 中,此自定义中间件是基于 Tempauth 构建的。使用方式与 Tempauth 类似。

  • 其他自定义中间件:根据您的环境自行编写。

具体来说,您使用 ‘’X-Auth-Token’’ 标头将身份验证令牌传递给 API 请求。

身份验证令牌在身份验证服务定义的时段后过期。令牌过期后,使用该令牌会导致请求以 401 未授权响应失败。要继续,您必须获取新的令牌。