精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

OpenStack keystone詳解及調優

責任編輯:editor005

2016-09-21 15:37:54

摘自:SDNLAB

User即用戶,他們代表可以通過keystone進行訪問的人或程序。* Alice通過token1發送keystone查詢他所擁有的租戶,keystone驗證token1成功后,返回Alice的所有Tenant  

一、Keystone基本概念介紹User

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

Tenant

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

Role

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

Service

Service即服務,如Nova、Glance、Swift。根據前三個概念(User,Tenant和Role)一個服務可以確認當前用戶是否具有訪問其資源的權限。但是當一個user嘗試著訪問其租戶內的service時,他必須知道這個service是否存在以及如何訪問這個service,這里通常使用一些不同的名稱表示不同的服務。在上文中談到的Role,實際上也是可以綁定到某個service的。例如,當swift需要一個管理員權限的訪問進行對象創建時,對于相同的role我們并不一定也需要對nova進行管理員權限的訪問。為了實現這個目標,我們應該創建兩個獨立的管理員role,一個綁定到swift,另一個綁定到nova,從而實現對swift進行管理員權限訪問不會影響到Nova或其他服務。

Endpoint

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

二、keystone 的訪問流程

通俗的講,token 是用戶的一種憑證,需拿正確的用戶名/密碼向 Keystone 申請才能得到。如果用戶每次都采用用戶名/密碼訪問 OpenStack API,容易泄露用戶信息,帶來安全隱患。所以 OpenStack 要求用戶訪問其 API 前,必須先獲取 token,然后用 token 作為用戶憑據訪問 OpenStack API。

以創建一個虛擬機(server)為例,結合上圖簡述下keystone在openstack的訪問流程。

* 用戶Alice通過自己的戶名和密碼向keystone申請token,keystone認證用戶名和密碼后,返回token1

* Alice通過token1發送keystone查詢他所擁有的租戶,keystone驗證token1成功后,返回Alice的所有Tenant

* Alice選擇一個租戶,通過用戶名和密碼申請token,keystone認證用戶名、密碼、tenant后,返回token2。(其實1、2步僅僅是為了查詢tenant,如果已經知道tenant,可以忽略1、2步)
* Alice通過token2發送創建server的請求,keystone驗證token2(包括該token是否有效,是否有權限創建虛擬機等)成功后,然后再把請求下發到nova,最終創建虛擬機。

1.獲取臨時Token

我們知道要創建虛擬機,一定是某一租戶下的用戶來創建的,因此在創建之前用戶要獲取自己所能訪問到的租戶 (一個用戶可以屬于多個租戶),要想獲取用戶能訪問的所有租戶需要從keystone獲取一個不與任何租戶相關聯的臨時Token. 我們可以使用keystone的標準REST API獲取某一用戶能訪問的所有租戶,注意這里不要在請求體中設置租戶名。

示例請求:

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 宁德市| 昌都县| 财经| 威海市| 郴州市| 广宗县| 旌德县| 济源市| 綦江县| 民县| 太原市| 白河县| 南丰县| 新和县| 四川省| 化德县| 万宁市| 景东| 盘锦市| 广昌县| 佛冈县| 洪泽县| 赤壁市| 信宜市| 全椒县| 惠州市| 田林县| 凌海市| 白沙| 美姑县| 商河县| 天台县| 江油市| 寻乌县| 皮山县| 丰顺县| 仙桃市| 浦县| 黄石市| 诏安县| 辽源市|