身份服务概述¶
OpenStack 身份服务提供了一个统一的集成点,用于管理身份验证、授权和服务的目录。
身份服务通常是用户交互的第一个服务。一旦通过身份验证,最终用户就可以使用他们的身份访问其他 OpenStack 服务。同样,其他 OpenStack 服务利用身份服务来确保用户就是他们所声称的身份,并发现部署中其他服务的位置。身份服务还可以与一些外部用户管理系统(例如 LDAP)集成。
用户和服务可以通过使用服务目录来定位其他服务,而服务目录由身份服务管理。顾名思义,服务目录是 OpenStack 部署中可用服务的集合。每个服务可以有一个或多个端点,每个端点可以是三种类型之一:admin(管理)、internal(内部)或 public(公共)。在生产环境中,出于安全原因,不同的端点类型可能驻留在暴露给不同类型用户的单独网络上。例如,公共 API 网络可能从互联网可见,以便客户可以管理他们的云。管理 API 网络可能仅限于组织内管理云基础设施的运营商。内部 API 网络可能仅限于包含 OpenStack 服务的宿主机。此外,OpenStack 支持多个区域以实现可扩展性。为简单起见,本指南对所有端点类型使用管理网络和默认 RegionOne 区域。总之,在身份服务中创建的区域、服务和端点构成了部署的服务目录。部署中的每个 OpenStack 服务都需要一个服务条目,其中包含存储在身份服务中的相应端点。所有这些都可以在安装和配置身份服务后完成。
身份服务包含以下组件
- 服务器
一个集中式服务器通过 RESTful 接口提供身份验证和授权服务。
- 驱动程序
驱动程序或服务后端集成到集中式服务器。它们用于访问 OpenStack 外部存储库中的身份信息,并且可能已经存在于部署 OpenStack 的基础设施中(例如,SQL 数据库或 LDAP 服务器)。
- 模块
中间件模块在正在使用身份服务的 OpenStack 组件的地址空间中运行。这些模块拦截服务请求,提取用户凭据,并将它们发送到集中式服务器进行授权。中间件模块和 OpenStack 组件之间的集成使用 Python Web Server Gateway Interface。