Openstack元件——Keystone解析
一、Keystone簡介
Keystone(OpenStack Identity Service)是 OpenStack 框架中負責管理身份驗證、服務規則和服務令牌功能的模組。使用者訪問資源需要驗證使用者的身份與許可權,服務執行操作也需要進行許可權檢測,這些都需要通過 Keystone 來處理。Keystone類似一個服務匯流排, 或者說是整個Openstack框架的登錄檔, 其他服務通過keystone來註冊其服務的Endpoint(服務訪問的URL),任何服務之間相互的呼叫, 需要經過Keystone的身份驗證, 來獲得目標服務的Endpoint來找到目標服務。
二、Keystone主要功能
1、身份認證:負責令牌的發放和校驗
2、使用者授權:授權使用者有指定的可執行動作的範圍
3、使用者管理:管理使用者的賬戶
4、服務目錄:提供可用服務的API端點位置
三、Keystone基本概念
1). User
User可簡單的理解為使用者,使用者攜帶信物(token)能夠訪問openstack各個服務和資源。
2). Tenant
Tenant即租戶,早期版本又稱為project,它是各個服務中的一些可以訪問的資源集合。比如通過nova建立虛擬機器時要指定到某個租戶中,在cinder建立卷也要指定到某個租戶中。使用者訪問租戶的資源前,必須與該租戶關聯,並且指定該使用者在該租戶下的角色。
3). Role
Role即角色,可以理解為VIP等級,使用者的Role越高,在openstack中能訪問的服務和資源就更多。
4). Service
Service即服務,如Nova、Glance、Swift、heat、ceilometer等。Nova提供雲端計算的服務,Glance提供映象管理服務,Swift提供物件儲存服務,heat提供資源編排服務,ceilometer則是提供告警計費服務,cinder提供塊儲存服務。
5). Endpoint
Service的顯得太抽象籠統。Endpoint則具體化Service。Endpoint翻譯為“端點”,我們可以理解它是一個服務暴露出來的訪問點,如果需要訪問一個服務,則必須知道他的endpoint,而endpoint一般為url,我們知道了服務的url,我們就可以訪問它。Endpoint
的url具有public、private和admin這三種許可權。public url可以被全域性訪問,private
url只能被區域網訪問,admin url被從常規的訪問中分離。
6). Token
Token即是信物、令牌,使用者通過使用者名稱和密碼獲取在某個租戶下的token,通過token,可以實現單點登入。
7) Credentials
該術語可以簡單的理解為使用者和密碼。
三、Keystone訪問流程
以建立一個虛擬機器(server)為例,結合下圖簡述下keystone在openstack的訪問流程。
1、使用者通過命令列或者horizon控制皮膚的方式登入openstack,憑藉自己的證書(credentials)給keystone驗證。
2、Keystone對使用者的證書驗證,驗證通過則會釋出一個令牌(token)和使用者所需服務的位置點(endpoint)給使用者。
3、使用者得到了位置點(endpoint)之後,攜帶自己的令牌,向nova發起請求,請求建立虛擬機器。
nova會拿著使用者的token向keystone進行認證,看是否允許使用者執行這樣的操作。
4、keystone認證通過之後,返回給nova,nova即開始執行建立虛擬機器的請求。首先需要映象資源,nova帶著令牌(token)和所需要的映象名向glance提出映象資源的請求。
5、glance會拿著token去向keystone進行認證,看是否允許提供映象服務。keystone認證成功後,返回給glance。glance向nova提供映象服務。
6、建立虛擬機器還需要網路服務,nova攜帶token向neutron傳送網路服務的請求
7、neutron拿著nova給的token向keystone進行認證,看是否允許向其提供網路服務。keystone認證成功後,返回給nuetron。nuetron則給nova提供網路規劃服務。
8、nova獲取了映象和網路之後,開始建立虛擬機器,通過hypervisior可呼叫底層硬體資源進行建立。建立完成返回給使用者,成功執行了使用者的請求。
相關文章
- 踏入OpenStack大門,Keystone元件部署元件
- OpenStack 安裝 Keystone
- 雲端計算管理平臺之OpenStack認證服務Keystone
- 三分鐘帶你入門瞭解openstack的keystone專案
- OpenStack的Heat元件詳解元件
- OpenStack的Swift元件詳解Swift元件
- OpenStack的Trove元件詳解元件
- openStack核心元件的工作流程元件
- 【openstack】cloudkitty元件,入門級安裝(快速)Cloud元件
- openstack基礎構架以及服務方式解析
- keystone和beaengine的編譯編譯
- Swift中配置Keystone服務(轉)Swift
- 深入解析React受控元件與非受控元件React元件
- 如何正確解除安裝Chrome瀏覽器及其元件Keystone?有哪些瀏覽器可以替代Chrome?Chrome瀏覽器元件
- Hyperf/Crontab 元件原始碼解析元件原始碼
- Openstack -- Queen --RDO
- openstack部署2
- vSphere export openstackExport
- OpenStack 與 Rancher
- openstack指定IP
- 重啟openstack的openstack-service命令不存在
- OpenStack-雲端計算,虛擬化技術,初步認識OpenStack,瞭解OpenStack的結構部署以及OpenStack核心專案
- Vue(13)子元件與父元件超詳細解析Vue元件
- 【原始碼解析】React Native元件渲染原始碼React Native元件
- 深入解析Vue元件間通訊Vue元件
- flutter圖片元件原始碼解析Flutter元件原始碼
- OpenStack Git review 使用GitView
- How OpenStack integrates with Ceph?
- OpenStack學習系列之十二:安裝ceph並對接OpenStack
- .NET定時任務元件Hangfire解析元件
- Android中元件生命週期完全解析Android元件
- OpenStack雲平臺部署
- 深入理解openstack neutron
- Packer構建openStack映象
- Kolla-ansible部署openStack
- OpenStack——雲平臺部署
- OpenStack計費服務
- OpenStack平臺的使用