<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
keystone是OpenStack的身份服務,暫且可以理解為一個'與許可權有關'的元件。
Keystone專案的主要目的是為存取openstack的各個元件(nova,cinder,glance...)提供一個統一的驗證方式,具體的:
openstack是由眾多元件構成的一套系統,該系統的功能是對外提供服務,因而我們可以將其定義為一個‘龐大的軟體’,沒有軟體不考慮安全因素,Keystone對於通常的應用場景所不同的是他要解決分散式環境下的統一認證。
openstack是一個SOA架構,理論上各子專案獨立提供相關服務,互不依賴,且是分散式的。如nova提供計算服務,glance提供映象服務等。
實際上所有的元件都依賴keystone(單點的),它整合了三個功能:
(1)管理身份驗證(managing authentication):驗證使用者身份
(2) 授權(authorization):基於角色role的許可權管理
(3)服務目錄(catalog of services):提服務目錄(ServiceCatalog:包括service和endpoint)服務,類似於UDDI服務的概念,使用者(無論是Dashboard, APIClient)都需要存取Keystone獲取服務列表,以及每個服務的地址(Openstack中稱為Endpoint)
User
:使用Openstack元件的使用者端可以是人、服務、系統,任何的使用者端來存取openstack元件,都需要有一個使用者名稱。
Credentials
:是用於確認使用者身份的憑證,說白了就是‘信物’,具體可以是:
Authentication
:
Token
:
Role
:
Policy
:
Project(Tenant)
:
Service:即Openstack中執行的各個元件服務。
Endpoint
:
是一個可以通過網路來存取和定位某個Openstack service的地址,通常是一個URL
不同的region有不同的endpoint(我們可以通過endpoint的region屬性去定義多個region)。
當Nova需要存取Glance服務去獲取image 時,Nova通過存取Keystone拿到Glance的endpoint,然後通過存取該endpoint去獲取Glance服務。
Endpoint 分為三類:
Catalog
:
使用者和服務可以使用使用keystone管理的catalog,定位到其他的服務,catalog一個openstack部署的相關服務的集合,每個服務都有一個或者多個endpoint(即可以存取的url地址),即catalog=services+endpoint。每個endpoint可以分為三種型別:
admin,internal,public,在生產環境中,不同endpoint型別位於不同的網路來為不同的使用者使用(提高安全性),比如:
public API:對整個網際網路可見,這樣客戶就可以方便的管理自己的雲了。
admin API:應該嚴格限定只有管理雲基礎設施的組織內的運營商,才能使用該API
internel API:應該被限定只有那些安裝有OpenStack服務的主機,才能使用該API
Service與Endpoint關係介紹:
我們使用keystone為服務5d533c68-d234-11e6-a0d7-0088653ea1ec客製化endpoint:
$ keystone endpoint-create --region RegionOne --service-id=5d533c68-d234-11e6-a0d7-0088653ea1ec --publicurl='https://public-ip:8776/v1/%(tenant_id)s' --internalurl='https://management-ip:8776/v1/%(tenant_id)s' --adminurl='https://management-ip:8776/v1/%(tenant_id)s'
然後你可以設定 OpenStack service 使用另一個 service 的 endpoint 的 internalurl 去存取另一個資源。
Regions
:
openstack支援多個可延伸的regions,OpenStack的支援可延伸的多個區域。為簡單起見,一般使用管理網路ip地址作為所有endpoint型別(三種api)的ip,且所有的endpoint型別(三種api)都使用一個區域,即regionone區。
每個你部署的openstack服務都需要繫結endpoint(儲存在keystone中)來提供服一個服務的入口,因而我們第一需要部署的元件就是keystone。
keystone管理和儲存了user資訊,管理user相關的tenant,role,group和domain等;使用者credential的存放,驗證,token管理,下圖是各部分關係
User: has account credentials, is associated with one or more projects or domains
Group: a collection of users, is associated with one or more projects or domains
Project: unit of ownership in OpenStack, contains one or more users
Domain: unit of ownership in OpenStack, contains users, groups and projects
Role: a first-class piece of metadata associated with many user-project pairs.
Token: identifying credential associated with a user or user and project
Extras: bucket of key-value metadata associated with a user-project pair.
Rule: describes a set of requirements for performing an action.
注意:user2,user3,user4的關係同user1一樣,也可以屬於一個或者多個group,此處為了圖示簡潔,省去了它們的連線
keystone包含三類元件:
1 Server
使用RESTful介面(三種api)提供認證和授權服務的集中式server
2 Drivers
指的是被整合到server內的驅動或者服務後端,它們被用來在openstack元件之外的庫中存取身份資訊(言外之意:mysql並不屬於openstack的元件/服務),並可能已經存在於openstack部署的架構中(比如, SQL databases or LDAP servers).
3 Modules
中介軟體執行在正在使用認證服務的openstack元件的地址空間,這些模組(中介軟體)攔截服務請求,提取使用者的credentials,並且把它們傳送給server去認證授權,在openstack中介軟體與openstack元件直接的整合操作使用Python Web Server Gateway Interface,即wsgi,詳見http://www.cnblogs.com/linhaifeng/p/6268615.html
keystone是使用者與雲平臺互動的第一個服務,一旦認證通過,使用者就會使用自己的身份來存取其他的opnestack服務,同樣,被存取的openstack服務會去跟keystone再次確認使用者(不能只能使用者的片面之詞)並且通過keystone可以發現其他服務(catalog的原因),keystone的還可以整合其他的使用者管理系統,比如LDAP
(1) User從Keystone獲取令牌以及服務列表;
(2) User存取服務時,亮出自己的令牌。
(3)相關的服務向Keystone求證令牌的合法性。
使用者alice登入keystone系統(password或者token的方式),獲取一個臨時的token和catalog服務目錄(v3版本登入時,如果沒有指定scope,project或者domain,獲取的臨時token沒有任何許可權,不能查詢project或者catalog)。
alice通過臨時token獲取自己的所有的project列表。
alice選定一個project,然後指定project重新登入,獲取一個正式的token,同時獲得服務列表的endpoint,使用者選定一個endpoint,在HTTP訊息頭中攜帶token,然後傳送請求(如果使用者知道project name或者project id可以直接第3步登入)。
訊息到達endpoint之後,由伺服器端(nova)的keystone中介軟體(pipeline中的filter:authtoken)向keystone傳送一個驗證token的請求。(token型別:uuid需要在keystone驗證token,pki型別的token本身是包含使用者詳細資訊的加密串,可以在伺服器端完成驗證)
keystone驗證token成功之後,將token對應使用者的詳細資訊,例如:role,username,userid等,返回給伺服器端(nova)。
伺服器端(nova)完成請求,例如:建立虛擬機器器。
伺服器端返回請求結果給alice。
以上就是openstack雲端計算keystone元件工作流程及服務關係的詳細內容,更多關於openstack雲端計算keystone工作流程服務關係的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45