Keystone做为Openstack的核心模块,为Nova(计算),Glance(镜像),Swift(对象存储),Cinder(块存储),Neutron(网络)以及Horizon(Dashboard)提供认证服务网络
Keystone基本概念介绍之一ide
User url
User即用户,他们表明能够经过keystone进行访问的人或程序。Users经过认证信息(credentials,如密码、API Keys等)进行验证。 spa
Tenant 翻译
Tenant即租户,它是各个服务中的一些能够访问的资源集合。例如,在Nova中一个tenant能够是一些机器,在Swift和Glance中一个tenant能够是一些镜像存储,在Neutron中一个tenant能够是一些网络资源。Users默认的老是绑定到某些tenant上。 xml
Role 对象
Role即角色,Roles表明一组用户能够访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users能够被添加到任意一个全局的或租户的角色中。在全局的role中,用户的role权限做用于全部的租户,便可以对全部的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。 blog
Service 图片
Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一个服务能够确认当前用户是否具备访问其资源的权限。可是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里一般使用一些不一样的名称表示不一样的服务。资源
Keystone基本概念介绍之二
Endpoint
Endpoint,翻译为“端点”,咱们能够理解它是一个服务暴露出来的访问点,若是须要访问一个服务,则必须知道他的endpoint。所以,在keystone中包含一个endpoint模板,这个模板提供了全部存在的服务endpoints信息。一个endpoint template包含一个URLs列表,列表中的每一个URL都对应一个服务实例的访问地址,而且具备public、private和admin这三种权限。public url能够被全局访问(如http://compute.example.com),private url只能被局域网访问(如http://compute.example.local),admin url被从常规的访问中分离。
Token
Token是访问资源的钥匙。它是经过Keystone验证后的返回值,在以后的与其余服务交互中只须要携带Token值便可。每一个Token都有一个有效期,Token只在有效期内是有效的。
各类概念之间关系解释
1、租户下,管理着一堆用户(人,或程序)。
2、每一个用户都有本身的credentials(凭证)用户名+密码或者用户名+API key,或其余凭证。
3、用户在访问其余资源(计算、存储)以前,须要用本身的credential去请求keystone服务,得到验证信息(主要是Token信息)和服务信息(服务目录和它们的endpoint)。
4、用户拿着Token信息,就能够去访问特色的资源了。
Keystone在OpenStack中的访问流程范例