文章内容

2024/8/21 6:48:16,作 者: 黄兵

OpenStack Swift 中 ACL 认证是由那个中间件实现的

在 OpenStack Swift 中,访问控制列表(ACL)的认证通常由 Swift 内部的访问控制机制 来处理,而不是单独的某个中间件。ACL 的逻辑通常与身份验证(Authentication)和授权(Authorization)服务紧密结合在一起。

常见的身份验证中间件(比如 tempauthkeystone)会负责处理身份验证和权限验证的逻辑,而 ACL 的具体权限控制则是在 Swift 的存储桶(container)和对象级别中由 Swift 服务器自身的代码逻辑进行解析和执行。

主要组件:

  1. keystone 中间件

    • 使用 OpenStack 的 Keystone 服务进行身份验证。这个中间件会根据 Keystone 服务返回的 token 信息来确定用户的身份以及权限。
    • 它还可以与 ACL 结合使用,以确定用户对存储桶或对象的访问权限。
  2. tempauth 中间件

    • 这是 Swift 自带的一个简单的认证中间件,用于测试或开发环境。tempauth 中间件提供了用户身份认证和权限验证功能,并且可以定义简单的 ACL。
  3. proxy-server

    • 代理服务器是 Swift 的核心组件,负责处理 API 请求、验证用户权限、解析 ACL 以及决定是否允许对存储桶或对象的访问。ACL 的逻辑是在代理服务器中实现的,并通过头信息(如 X-Container-ReadX-Container-Write)来控制存储桶的访问权限。

ACL 认证的工作流程:

  1. 用户发出请求时,身份验证中间件(如 keystonetempauth)会验证请求中的 token,确认用户身份。
  2. 如果请求通过身份验证,中间件会检查存储桶或对象上的 ACL 配置,以确定用户是否有权限进行相应的操作(如读取或写入)。
  3. 代理服务器会解析这些 ACL 设置,并决定是否允许请求继续执行。

总结:

在 OpenStack Swift 中,ACL 的认证是由 身份验证中间件(如 Keystone 或 tempauth)Swift 代理服务器(proxy-server) 共同完成的。代理服务器负责处理 ACL 规则,而身份验证中间件负责验证用户身份。


其它相关推荐:

1、OpenStack Swift 大文件分片

2、OpenStack Swift 与 AWS S3 对比

3、Ubuntu 22.04 安装 OpenStack Swift

4、Ubuntu 22.04 安装 OpenStack Swift 存储策略

5、OpenStack Swift 自定义认证中间件

分享到:

发表评论

评论列表