OpenStack主要邏輯模塊–Keystone身份驗證服務

Keystone作爲Openstack的核心模塊,爲Nova(計算),Glance(鏡像),Swift(對象存儲),Cinder(塊存儲),Neutron(網絡)以及Horizon(Dashboard)提供認證服務

wKioL1j1yqWRrHEvAARFr3hBlxg372.png-wh_50

Keystone基本概念介紹之一

  • User

User即用戶,他們代表可以通過keystone進行訪問的人或程序。Users通過認證信息(credentials,如密碼、API Keys等)進行驗證。

  • Tenant

Tenant即租戶,它是各個服務中的一些可以訪問的資源集合。例如,在Nova中一個tenant可以是一些機器,在SwiftGlance中一個tenant可以是一些鏡像存儲,在Neutron中一個tenant可以是一些網絡資源。Users默認的總是綁定到某些tenant上。

  • Role

Role即角色,Roles代表一組用戶可以訪問的資源權限,例如Nova中的虛擬機、Glance中的鏡像。Users可以被添加到任意一個全局的或租戶的角色中。在全局的role中,用戶的role權限作用於所有的租戶,即可以對所有的租戶執行role規定的權限;在租戶內的role中,用戶僅能在當前租戶內執行role規定的權限。

  • Service

Service即服務,如NovaGlanceSwift。根據前三個概念(UserTenantRole)一個服務可以確認當前用戶是否具有訪問其資源的權限。但是當一個user嘗試着訪問其租戶內的service時,他必須知道這個service是否存在以及如何訪問這個service,這裏通常使用一些不同的名稱表示不同的服務。

 

Keystone基本概念介紹之二

  • Endpoint

Endpoint,翻譯爲“端點”,我們可以理解它是一個服務暴露出來的訪問點,如果需要訪問一個服務,則必須知道他的endpoint。因此,在keystone中包含一個endpoint模板,這個模板提供了所有存在的服務endpoints信息。一個endpoint template包含一個URLs列表,列表中的每個URL都對應一個服務實例的訪問地址,並且具有publicprivateadmin這三種權限。public url可以被全局訪問(如http://compute.example.com),private url只能被局域網訪問(如http://compute.example.local),admin url被從常規的訪問中分離。

  • Token

     Token是訪問資源的鑰匙。它是通過Keystone驗證後的返回值,在之後的與其他服務交互中只需要攜帶Token值即可。每個Token都有一個有效期,Token只在有效期內是有效的。

各種概念之間關係解釋

wKiom1j1yqGw-aJgAACXE9wEah8797.png-wh_50


1、租戶下,管理着一堆用戶(人,或程序)。

2、每個用戶都有自己的credentials(憑證)用戶名+密碼或者用戶名+API key,或其他憑證。

3、用戶在訪問其他資源(計算、存儲)之前,需要用自己的credential去請求keystone服務,獲得驗證信息(主要是Token信息)和服務信息(服務目錄和它們的endpoint)。

4、用戶拿着Token信息,就可以去訪問特點的資源了。

KeystoneOpenStack中的訪問流程範例

 wKioL1j1yqHTxYTpAAD9-89eaps946.png-wh_50


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章