OpenStack API理解與應(yīng)用

OpenStack的各個服務(wù)組件都有提供相應(yīng)的API接口,如nova-api,gance-api等等。使用這些 API和擴展可以讓用戶在OpenStack云中進(jìn)行一系列的操作,如啟動服務(wù)主機,創(chuàng)建鏡像,給主機和鏡像設(shè)置元數(shù)據(jù),創(chuàng)建容器和對象等等。

但在調(diào)用任何組件的API前,必須通過Identity API進(jìn)行鑒權(quán)。

Identity Service

Identity Service 具備的功能:

??Tracking users and their permissions.

? Providing a catalog of available services with their API endpoints

開始我認(rèn)為是進(jìn)行用戶身份權(quán)限驗證的服務(wù),但是后來發(fā)現(xiàn)它只是進(jìn)行用戶授權(quán)。

為了方便管理,它抽象出了一組概念:

User | Credentials | Authentication | Token | Tenant | Service | Endpoint | Role | Keystone Client

具體對這些概念的說明,參見

http://docs.openstack.org/juno/install-guide/install/apt/content/keystone-concepts.html

http://www.cnblogs.com/yuki-lau/archive/2013/01/04/2843918.html

下圖是一個權(quán)限驗證的過程:

OpenStack Identity process flow

1. 用戶想要創(chuàng)建一個服務(wù)器。首先用戶要提供自己的認(rèn)證信息(可能是用戶名和密碼,或者是用戶名和API key),然后keystone提供一個臨時的token和一個服務(wù)列表(serviceCatalog)

2. 用戶使用臨時的token請求他所有的Tenant信息(可以理解為一些資源),keystone返回Tenants 列表。

3. Keystone 提供用戶目標(biāo)Tenant里面的服務(wù)列表。用戶用自己的鑒權(quán)信息獲得目標(biāo)Tenant的token和服務(wù)列表,然后使用tenant token和指定服務(wù)的endpoint(可以理解為具體的API)信息去啟動服務(wù)器。

4. 該服務(wù)去和keystone驗證該token是否正確。

5. Keystone返回這個token的相關(guān)信息:用戶獲得鑒權(quán)被允許訪問這個服務(wù);token和這個請求相符;token屬于這個用戶。

6. 服務(wù)執(zhí)行該請求(創(chuàng)建服務(wù)器)。

7. 執(zhí)行完成后返回結(jié)果。

OpenStack中調(diào)用任何API,在執(zhí)行請求前都要經(jīng)過keystone認(rèn)證,下圖說明了keystone和其他各個服務(wù)組件的關(guān)系:


Keystone在OpenStack中的訪問流程

API調(diào)用方式

OpenStack提供了多種API調(diào)用的方式,參見http://docs.openstack.org/api/quick-start/content/ ,有

cURL

OpenStack命令行客戶端

REST客戶端

軟件開發(fā)工具包(SDK)

Identity API

Identity API是一個ReSTful web service,是所有service APIs的入口。要訪問Identity API,你必須知道它的URL和訪問方式。默認(rèn)Identity的服務(wù)端口為5000,具體可以查詢keystone中對各個服務(wù)的endpoint的設(shè)置。下面介紹一些API的具體內(nèi)容

請求認(rèn)證并生成token的API:

method: 'POST' ? ? URL : '/v2.0/tokens'

每個ReST請求需要有X-Auth-Token 作為header。

認(rèn)證時,需要提供user ID和密碼或者是一個token。

如果token過期,會返回一個401

如果是請求中的token過期,會返回404

Identity將過期token視為無效token。

部署時可以指定token的過期時間

正常返回碼:200,203

錯誤返回碼:identityFault (400, 500, …), userDisabled (403), badRequest (400), unauthorized (401), forbidden (403), badMethod (405), overLimit (413), serviceUnavailable (503), itemNotFound (404)

所有的API提供json和xml兩種格式

可以訪問http://developer.openstack.org/api-ref.html 官方文檔獲取更具體的內(nèi)容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Openstack Mitaka安裝部署教程 一、實驗環(huán)境: 系統(tǒng):centos7.2-minimal 網(wǎng)絡(luò):管理...
    指間_流年閱讀 2,327評論 0 0
  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個操作系統(tǒng),...
    sgt_tiger閱讀 13,239評論 4 72
  • 3.1 CentOS7的時間同步服務(wù)器chrony 下載chrony 1[root@linux-node1 ~]#...
    mark_meng閱讀 4,434評論 1 0
  • 我總不問歸期 因為歸期是給急于回去的人準(zhǔn)備的 我不問 好像離開的日子還很長 我不問 好像忘了時間有腳 而當(dāng)離別只剩...
    采棠煨酒閱讀 255評論 0 4
  • 在上篇文章中,我對唯品會app做了個大致的分析,畢竟那是第一篇,有很多不太完美的地方。不過還是收到了一些喜歡和評論...
    Jelly妮閱讀 7,296評論 3 11

友情鏈接更多精彩內(nèi)容