Keystone是OpenStack組件之一——Identity Service(認證服務)成立的核心項目。該項目整體上相對于其他項目并不復雜,其類似于一個服務總線,也可以理解為整個OpenStack服務框架的注冊表,OpenStack中其他項目通過Keystone可以注冊其服務然后獲得該服務的Endpoint(服務的訪問端口,或者理解為入口),這個Endpiont可以是一個也可以是多個。此外,任何服務之間的調(diào)用也需要通過Keystone的認證才能獲得目標服務的Endpoint來訪問對應服務。
創(chuàng)新互聯(lián)公司是專業(yè)的遂寧網(wǎng)站建設公司,遂寧接單;提供網(wǎng)站設計制作、成都做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行遂寧網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!當然,既然是認證服務,就有一定的認證機制,那么思考一下在生活中可以想到有什么類似認證的例子?
其實,這樣的例子很多,家家戶戶的鎖匙就是一種認證機制,再比如支付寶賬號密碼登錄也是認證機制的典型例子,再如,各種門票入場券都可以認為是一種認證機制。
總而言之,Keystone項目就是通過相應的認證授權(quán)形式來向其他服務或其他服務之間提供服務支持,其主要功能就是對用戶和服務進行管理的。因此我們要理解如何管理用戶以及服務,就需要對Keystone的主要模塊構(gòu)成熟悉理解。
本小節(jié)將介紹Keystone對用戶和服務進行管理層面上對應組成概念及作用的介紹,介紹過程中涉及的術語都會在下文進行詳細介紹,可以自行查閱理解。
表示使用服務的用戶,可以是人,服務或者系統(tǒng),只要是使用了openstack服務的對象都可以稱為用戶。當User對OpenStack進行訪問時,Keystone會對其身份進行驗證,驗證通過的用戶可以登錄OpenStack云平臺并且通過其頒發(fā)的Token(下面會講解)去訪問資源,用戶可以被分配到一個或者多個tenant或project(下文給出介紹)中。
表示使用訪問的租戶,作用是對資源進行分組,或者說是為了使提供的資源之間互相隔離,可以理解為一個一個容器,也稱為Project。
在一個租戶中可以擁有很多個用戶,用戶也可以隸屬于多個租戶,但必須至少屬于某個租戶。租戶中可使用資源的限制稱作Tenant Quotas,聯(lián)想一下Linux系統(tǒng)磁盤管理的磁盤配額,這個Quotas的含義就是配額、限額。用戶可以根據(jù)權(quán)限的劃分使用租戶中的資源。
表示提供進行驗證的令牌,是Keystone分配的用于訪問OpenStack API和資源服務的字符串文本。用戶的令牌可能在任何時間被撤銷(revoke),就是說用戶的Token是具有時間限制的,并且在OpenStack中Token是和特定的Tenant(租戶)綁定的,也就是說如果用戶屬于多個租戶,那么其就有多個具有時間限制的令牌。
表示用戶憑據(jù),用來證明用戶身份的數(shù)據(jù),可以是用戶名和密碼、用戶名和API Key,或者是Keystone認證分配的Token。
表示身份認證,是驗證用戶身份的過程。將上面的幾個結(jié)合起來簡單說明一下該過程。
首先,用戶申請訪問等請求,Keystone服務通過檢查用戶的Credential確定用戶身份;然后,在第一次對用戶進行認證時,用戶使用用戶名和密碼或用戶名和API Key作為Credential;其次,當用戶的Credential被驗證之后,Keystone會給用戶(用戶必定至少屬于一個租戶)分配一個Authentication Token來給該用戶之后去使用。
表示服務,有OpenStack提供,例如Nova、Swift或者Glance等等,每個服務提供一個或多個Endpoint(服務的入口)來給不同角色的用戶進行資源訪問以及操作。
表示服務的入口,是一個由Service監(jiān)聽服務請求的網(wǎng)絡地址。客戶端要訪問某個service,就需要通過該service通過的Endpoint(通常是可以訪問的一個URL地址)。在OpenStack服務架構(gòu)中,各個服務之間的相互訪問也需要通過服務的Endpoint才可以訪問對應的目標服務。
表示角色,類似一訪問控制列表——ACL的集合。主要是用于分配操作的權(quán)限。角色可以被指定給用戶,使得該用戶獲得角色對應的操作權(quán)限。其實在Keystone的認證機制中,分配給用戶的Token中包含了用戶的角色列表。
換言之,Role扮演的作用可以理解為:當服務被用戶訪問時,該服務會去解析用戶角色列表中的角色的權(quán)限(例如可以進行的操作權(quán)限、訪問哪些資源的權(quán)限)。
表示策略,用于控制某一個Tenant中的某一個User是否具備某個操作的權(quán)限。也就是說,通過Policy機制,依據(jù)配置文件(默認是在/etc/keystone/目錄下的policy.json文件),可以決定User可以執(zhí)行什么操作,不能執(zhí)行什么操作。
該文件內(nèi)容格式如下(大致了解一下即可):
1 {
2 "admin_required": "role:admin or is_admin:1",
34 "identity:get_project": "rule:admin_required",
35 "identity:list_projects": "rule:admin_required",
......
45 "identity:delete_user": "rule:admin_required",
46 "identity:change_password": "rule:admin_or_owner",
47}
上篇文章介紹OpenStack的架構(gòu)的時候給出過如下的一個架構(gòu)圖,不知道是否有所印象或者之前在其他的文章中看見過:
通過該圖,我們可以直觀上了解Identity Service的Keystone服務是一個提供統(tǒng)一整體認證的項目,不僅建立自身與用戶之間的關系,也是其他服務之間進行資源訪問等操作的紐帶。
Keystone內(nèi)部結(jié)構(gòu)圖如下所示:
該結(jié)構(gòu)非常簡單,上面是Keystone的服務和管理的API,下面是對應的各個后端服務應用,例如:令牌、編目、策略以及身份等方面的服務集合。說到這里,需要補充一點,Keystone可以集成普遍使用的目錄服務,如LDAP(輕量級目錄訪問協(xié)議)。
通過以上內(nèi)容,想必對Keystone概念主要作用、組成部分以及結(jié)構(gòu)模型有了自己的理解了。那么下面來理一下Keystone是如何進行工作的,或者說它的響應的流程是怎樣的。
下面通過一個用戶創(chuàng)建實例的過程中對于Keystone認證過程,結(jié)合示意圖來介紹整個Keystone服務的響應流程。在閱讀整個過程的同時體會理解上面的9個組成部分的作用,進行自己的思考加深理解。
下面以該創(chuàng)建實例虛擬機為例描述Keystone與其他服務之間的響應流程:
1、用戶首先向Keystone發(fā)送如用戶密碼之類的身份信息(用戶名和密碼或者用戶名和API key),Keystone驗證成功后向用戶配發(fā)Token;
2、之后用戶向Nova發(fā)出帶有Token的實例創(chuàng)建請求,Nova接收到請求后向Keystone驗證Token的有效性,確定該Token是否有效;
3、上述的Token被證實有效后,由Nova向Glance服務發(fā)出帶有Token的鏡像傳輸請求,Glance同樣要到Keystone去驗證Token的有效性;
4、上述的Token被證實有效后Glance向Nova正式提供鏡像目錄查詢和傳遞服務,Nova獲取鏡像后繼續(xù)向Neutron發(fā)送帶有Token的網(wǎng)絡創(chuàng)建服務,再由Neutron向Keystone求證Token的有效性;
5、Token被證實有效后,Neutron允許Nova使用網(wǎng)絡服務;
6、Nova啟動虛擬機成功,同時向用戶返回創(chuàng)建實例成功的通知。
本文旨在介紹Keystone的作用和工作原理,重點在于Keystone提供的認證服務,包含的9個主要部分內(nèi)容,腦海里有其與其他組件以及用戶之間的關系,最為重要的就是Keystone是如何工作的,要對整個響應的工作流程非常熟悉理解。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)頁標題:Keystone的概念和實現(xiàn)原理-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article32/doojpc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、商城網(wǎng)站、域名注冊、網(wǎng)站制作、標簽優(yōu)化、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容