亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

(棄)解讀Openstack Identity API v2.0

系統 2115 0

  目前OpenStack社區提供了詳盡的API文檔,并配有豐富的說明和示例,關于Identity API v2 查看這里 , 關于Identity API v3請 查看這里

  盡管現在官方已經不建議OpenStack Identity API v2.0,但是出于后向兼容考慮,目前的Keystone發行版仍支持v2版的API。v2版API是理解keystone功能的關鍵,v3 API作為v2 API的超集在原有基礎上做了一些改動,這些改動與v3 API的詳細解讀將留待以后的文章完成。本文主要解讀OpenStack Identity API v2.0的核心內容,在參考官方 Reference 的基礎上做了相關篩選,可以作為更為精簡的Identity API 功能參考手冊。

1.概況

1.1 請求與響應的格式

明確請求格式

??? 在請求文件頭的Content-Type字段指定. 有兩種可選格式:

??? JSON, Content-Type: application/json
??? XML,Content-Type: application/xml

規定響應格式

??? 在請求文件頭的Accept字段指定,可選值與Conten-Type相同,或者在請求URI之后添加.xml或.json擴展(該方法具有高優先級)。

?

示例——JSON 格式HTTP請求的頭信息

??? POST /v2.0/tokens HTTP/1.1??????????? 方法? 目標URL? 協議
??? Host: identity.api.openstack.org?????? 主機
??? Content-Type: application/json??????? 請求的格式
??? Accept: application/xml ? ? ? ? ? ? ? ? ? ?接收響應的格式

?

1.2 內容壓縮

可以壓縮請求或響應的body數據,具體的做法是分別在請求和響應頭信息中下述字段指明壓縮手段:

  HTTP/1.1 Request???????? Accept-Encoding: gzip

HTTP/1.1 Response???? Content-Encoding: gzip

?

1.3 顯示容量限制(marker & limit)

  可以在請求URI中指定limit和marker參數,這兩個參數均是可選的。

  marker參數代表了前一個列表中最后一項的ID。不同的內容項以更新時間排序,當更新時間不可用時,才以id排序。

  請求中的limit參數限定了響應每一頁的數據項容量,如下面的請求

  GET  http://identity.api.openstack.org/v2.0/1234/tenants?limit=1

規定了keystone服務器返回的每一頁中只包含一個目標數據項。為了能夠了解全部的數據項,服務器返回的信息在遵照客戶端設置的分頁容量同時提供"next"和"previous"字段,其內容分別是下一頁和上一頁的URL,利用這兩個字段,客戶端可以請求超過自己設定的分頁容量的數據。

  如果客戶端請求中設置的響應頁容量(limit)超過了服務器端部署時的配置限制的話,那么響應將會報413(overLimit)錯誤,如果客戶端請求中設置的marker不是一個有效的ID的話,那么將會報404(itemNotFound)錯誤。

  需要注意的是,當請求的對象集合是空集時,此時不會報404錯誤,此時客戶端就會受到一個空的結果。

1.4 錯誤響應代碼

??? identityFault?????????????? 500, 400
??? serviceUnavailable ? ?503
??? badRequest????????????? 400
??? unauthorized???????????? 401
??? overLimit?????????????????? 413
??? userDisabled??????????? 403
??? forbidden?????????????????? 403
??? itemNotFound????????? 404
??? tenantConflict?????????? 409

?

2主要API匯總

2.1Client 操作

主要包括API 版本信息、擴展和令牌相關的查詢操作。

GET    /???????????????????????????????????????????????? 獲得所有API的版本信息

GET    /v2.0???????????????????????????????????????? 顯示Identity API v2.0的詳細信息

GET    /v2.0/extensions???????????????????? 顯示所有可用的擴展信息

GET    /v2.0/extensions/{alias}???????? 獲得指定擴展的詳細信息

POST    /v2.0/tokens???????????????????????? 身份認證,同時獲取token ? ? ? ? ??

?

2.2 Administrative操作

主要包括版本信息,擴展,用戶和工程的查詢操作,以及登錄系統進行身份認證的令牌操作。

GET    /v2.0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?顯示Identity API v2.0的詳細信息

GET    /v2.0/extensions???????????????????? 顯示所有可用的extensions

GET    /v2.0/extensions/{alias}???????? 獲取某一擴展的詳細信息

POST    /v2.0/tokens ? ? ? ? ? ? ? ? ? ? ? ??

  身份認證,同時獲取token
GET     ??/v2.0/tokens/{tokenId}{?belongsTo} ?

  驗證令牌,同時確認該令牌屬于指定租戶

HEAD    /v2.0/tokens/{tokenId}{?belongsTo} ?

  驗證令牌,確認該令牌屬于指定租戶,只收取響應的頭信息,效率更高

GET    /v2.0/users/{?name} ? ? ? ? ? ? ? ? ? ? ? ? ? ??

  通過用戶姓名獲取某用戶的具體信息
GET    /v2.0/users/{user_id}????????????????????????????

  通過用戶id來獲取某用戶的具體信息
GET    /v2.0/users/{user_id}/roles???????????????????

  列出一個用戶的所有角色

GET    /v2.0/tenants{?marker,limit} ? ? ? ? ? ? ? ??

  顯示所有的租戶
GET    /v2.0/tenants{?marker,limit,name}???????

  通過租戶名稱查詢其詳細信息
GET    /v2.0/tenants/{tenantId}??????????????????????  

  通過租戶ID查詢其詳細信息
GET    /v2.0/tenants/{tenantId}/users/{userId}/roles????????????????????????????????????????  

  顯示指定用戶在指定工程上的所有角色

?

2.3OS-KSADM admin 擴展

  主要包括:用戶、角色、項目和服務部分的操作

GET    /v2.0/users ? ? ? ? ? ? ? ? ??

  顯示所有用戶
POST    /v2.0/users???????????????????

  添加一個用戶
PUT    /v2.0/users/{userId}???????????????

  更新一個用戶
DELETE??????? /v2.0/users/{userId}???????????????

  刪除一個用戶

GET    /v2.0/users/{userId}/roles{?serviceId,marker,limit} ? ? ? ? ??

  查看某用戶全部角色

PUT    /v2.0/users/{userId}/roles/OSKSADM/{roleId}???

  為用戶添加角色
DELETE??????? /v2.0/users/{userId}/roles/OSKSADM/{roleId}???

  刪除用戶的一個角色
GET    /v2.0/OS-KSADM/roles????????????????

  查看當前角色
GET    /v2.0/OS-KSADM/roles/

  查看所有角色
POST    /v2.0/OS-KSADM/roles

  添加角色
GET    /v2.0/OS-KSADM/roles/{roleId}???????????

  根據角色ID獲取角色信息
DELETE??????? /v2.0/OS-KSADM/roles/{roleId}???????????

  刪除一個角色

POST    /v2.0/tenants ? ? ? ? ? ? ? ? ??

  創建一個租戶
POST    /v2.0/tenants/{tenantId}???????????

  更新一個租戶
DELETE    /v2.0/tenants/{tenantId} ? ? ? ? ??

  刪除一個租戶

GET    /v2.0/tenants/{tenantId}/users{?marker,limit}

  列出一個租戶的所有用戶

PUT    /v2.0/tenants/{tenantId}/users/{userId}/roles/OS-KSADM/{roleId}

  為指定租戶中的指定用戶添加指定角色

DELETE    /v2.0/tenants/{tenantId}/users/{userId}/roles/OS-KSADM/{roleId}

  刪除租戶中用戶的某角色

GET    /v2.0/OS-KSADM/services{?marker,limit}

  顯示所有服務
POST   ?/v2.0/OS-KSADM/services{?marker,limit}

  添加服務
GET    /v2.0/OS-KSADM/services/{?name}

  根據指定服務名查看服務信息
GET    /v2.0/OS-KSADM/services/{serviceId}???????

  根據指定服務ID查看服務信息
DELETE??????? /v2.0/OS-KSADM/services/{serviceId

  刪除服務

?

2.4 OS-KSCATALOG 擴展

  主要包括對終端和終端模板的操作

GET    /v2.0/tenants/{tenantId}/OSKSCATALOG/endpoints

  列出一個租戶的所有endpoints

POST    /v2.0/tenants/{tenantId}/OSKSCATALOG/endpoint

  為租戶添加endpoint

GET    /v2.0/tenants/{tenantId}/OSKSCATALOG/endpoints/{endpointId}

  獲取租戶的特定endpoint

DELETE    /v2.0/tenants/{tenantId}/OSKSCATALOG/?endpoints/{endpointId}

  刪除租戶的特定endpoint

GET    /v2.0/OS-KSCATALOG/endpointTemplates{?serviceId}

  列出所有endpoint模板

POST    /v2.0/OS-KSCATALOG/endpointTemplates{?serviceId}

  添加endpoint模板
GET    /v2.0/OS-KSCATALOG/endpointTemplates/{endpointTemplateId}

  獲取endpoint模板
PUT    /v2.0/OS-KSCATALOG/endpointTemplates/{endpointTemplateId}

  更新endpoint模板

DELETE    /v2.0/OS-KSCATALOG/endpointTemplates/{endpointTemplateId}

  刪除endpoint模板

?

2.5 OS-KSEC2 擴展

  主要包括對EC2兼容的Credential的操作

GET    /v2.0/users/{userId}/OS-KSADM/credentials{?marker,limit}

  列出credentials
POST??????? /v2.0/users/{userId}/OS-KSADM/credentials{?marker,limit}

  為一個用戶添加credential
GET??????? /v2.0/users/{userId}/OS-KSADM/credentialsOSKSEC2:ec2Credentials

  獲取用戶的credentials
POST??????? /v2.0/users/{userId}/OS-KSADM/credentials/OSKSEC2:ec2Credentials

  更新用戶的credentials
DELETE??????? /v2.0/users/{userId}/OS-KSADM/credentials/OSKSEC2:ec2Credentials

  刪除用戶的credentials
GET??????? /v2.0/users/{userId}/OS-KSADM/credentials/OSKSEC2:ec2Credentials/{type}{?type}

  根據指定類型顯示credentials

?

2.6 OS-KSS3擴展

GET    /v2.0/users/{userId}/OS-OS-KSS3/credentials{?marker,limit}

  列出credentials
POST    /v2.0/users/{userId}/OS-OS-KSS3/credentials{?marker,limit}

  為一個用戶添加credential
GET    /v2.0/users/{userId}/OS-OS-KSS3/credentials/s3credentials

  獲取用戶的credentials
POST    /v2.0/users/{userId}/OS-OS-KSS3/credentials/s3credentials

  更新用戶的credentials
DELETE    /v2.0/users/{userId}/OS-OS-KSS3/credentials/s3credentials

  刪除用戶的credentials
GET    /v2.0/users/{userId}/OS-OS-KSS3/credentials/s3credentials/{type}{?type}

  根據指定類型顯示credentials

?

2.7 OS-KSVALIDATE擴展

GET    /v2.0/OS-KSVALIDATE/token/validate{?belongsTo,HP-IDM-serviceId}

  驗證一個令牌,屬于指定的租戶和服務,返回對應客戶的權限

HEAD    /v2.0/OS-KSVALIDATE/token/validate{?belongsTo,HP-IDM-serviceId}

  上一個API的高效版

GET    /v2.0/OS-KSVALIDATE/token/endpoints{?HP-IDM-serviceId}???????????????

  列出與一個令牌關聯的endpoints

?

以下API v2.0請參考《 Identity API v2.0

  RAX-GRPADM admin extensions

  RAX-KSGRP admin extensions

  RAX-KSKEY adminextensions

?

OpenStack Identity API參考資料

1. v3 版Python API

http://docs.openstack.org/developer/python-keystoneclient/using-api-v3.html

2. v3版API官方詳解

https://github.com/openstack/identity-api/blob/master/v3/src/markdown/identity-api-v3.md

3. v2版API參考手冊

http://docs.openstack.org/api/openstack-identity-service/2.0/content/

4. v2版Python API

http://docs.openstack.org/developer/python-keystoneclient/using-api-v2.html

?

?

(棄)解讀Openstack Identity API v2.0


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩乱码毛片免费观看 | 久久精品在线 | 九九热视频免费在线观看 | 欧美日韩在线播一区二区三区 | 亚洲码和乱人伦中文一区 | 伊人网站在线 | 日日干天天射 | 国产精品亚洲欧美日韩一区在线 | α毛片| 就草草在线观看视频 | 综合欧美视频一区二区三区 | 综合爱爱网 | 久久97精品久久久久久久看片 | 亚洲天天操| 国产亚洲美女精品久久久 | 亚洲欧美综合人成野草 | 国产日韩高清一区二区三区 | 国产精品久久久久天天影视 | 欧美一级性视频 | 免费黄色在线观看 | 国产一区二区三区视频 | 国产精品久久久久影院嫩草 | 一级特黄国产高清毛片97看片 | 天天做天天添婷婷我也去 | 久草视频免费 | 久久香蕉国产线看观看精品蕉 | 日日噜噜噜夜夜爽爽狠狠69 | 中文字幕在线一区二区在线 | 天天干天天玩 | 九九国产在线 | 亚洲国产欧洲 | 91国在线| 九一视频在线免费观看 | 日日摸夜夜添夜夜添毛片 | www.欧美精品| 久久欧美精品欧美久久欧美 | 欧美视频在线视频 | 国产一级特黄aaa大片 | 天天射天天舔 | 国产凹凸在线一区二区色老头 | 国产精品夜夜春夜夜爽久久 |