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