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中的訪問流程範例