OpenStack Identity,项目代号 Keystone,是 OpenStack 默认的身份管理系统。在Identity安装完成后,使用/etc/keystone/keystone.conf配置文件来配置,使用独立配置文件配置日志,使用Keystone命令行客户端来初始化身份数据。
OpenStack 的身份服务有两个主要功能:用户管理记录用户及其权限;服务目录提供可用服务及该服务API的终端地址。
身份服务定义了一些非常值得理解的概念。
1.用户(User)
使用 OpenStack 云服务的人、系统、服务的数字表示。身份验证服务验证用户传入的请求。用户登录可能被赋予访问资源的令牌。用户可能直接被指定给一个特定租户,好像用户在这个租户中一样。
2.认证信息(Credentials)
用户持有的一般只有该用户知道的数据。用户能够使用这个数据来证明自己的身份(因为没有其他人知道这个数据),数据包括:
(1)配对的用户名和密码;
(2)配对的用户名和API Key;
(3)用户和有用户本人照片的驾驶证;
(4)颁发给用户不被其他人知道的令牌。
3.认证(Authentication)
在认证服务背景下,认证是确认用户身份和请求正确性的动作。身份服务确认传入的请求来自有请求权限的用户。这些请求最初以一系列验证信息的形式出现(用户名和密码,或者用户名和 API Key)。经过初始验证后,身份服务会颁发给用户一个令牌,在后续请求时用户可以用这个令牌说明其身份已经经过认证。
4.令牌(Token)
令牌是用来访问资源的任意比特的文本。每个令牌都有一个访问范围。令牌可以在任意时间收回,仅在一个有限的时间内有效。在 Folsom 版本中,身份服务支持基于令牌的认证,未来将会支持额外的协议。令牌的首要目的是集成服务,而不是一定要成为一个成熟的身份存储和管理方案。
5.租户(Tenant)
租户是用来分组或隔离资源和(或)身份对象的容器。根据服务运营商,租户可以映射成一个客户、账户、组织或项目。
6.服务(Service)
服务是一个 OpenStack 服务,如计算(Nova)、对象存储(Swift)或镜像服务(Glance)。服务提供一个或多个用户可以访问资源和执行(可能有用的)操作的端点。
7.端点(Endpoint)
端点是一个可通过网络访问的服务地址,通常使用 URL 描述。如果使用扩展,可以创建端点模板,它代表了所有可跨区域访问的服务。
8.角色(Role)
角色是可执行一系列特定操作的用户特性,包括一系列权利和特权。用户可继承其所属角色的权利和特权。在身份服务中,颁发给用户的令牌包括用户能承担的角色列表。这个用户调用的服务决定他们怎样解释这个用户所属的角色,以及每个角色授予访问的操作和资源。
其中,用户、租户、角色是用户身份管理的三个主要概念。