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

(棄)解讀Openstack Identity API v2.0

系統(tǒng) 2384 0

  目前OpenStack社區(qū)提供了詳盡的API文檔,并配有豐富的說(shuō)明和示例,關(guān)于Identity API v2 查看這里 , 關(guān)于Identity API v3請(qǐng) 查看這里

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

1.概況

1.1 請(qǐng)求與響應(yīng)的格式

明確請(qǐng)求格式

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

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

規(guī)定響應(yīng)格式

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

?

示例——JSON 格式HTTP請(qǐng)求的頭信息

??? POST /v2.0/tokens HTTP/1.1??????????? 方法? 目標(biāo)URL? 協(xié)議
??? Host: identity.api.openstack.org?????? 主機(jī)
??? Content-Type: application/json??????? 請(qǐng)求的格式
??? Accept: application/xml ? ? ? ? ? ? ? ? ? ?接收響應(yīng)的格式

?

1.2 內(nèi)容壓縮

可以壓縮請(qǐng)求或響應(yīng)的body數(shù)據(jù),具體的做法是分別在請(qǐng)求和響應(yīng)頭信息中下述字段指明壓縮手段:

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

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

?

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

  可以在請(qǐng)求URI中指定limit和marker參數(shù),這兩個(gè)參數(shù)均是可選的。

  marker參數(shù)代表了前一個(gè)列表中最后一項(xiàng)的ID。不同的內(nèi)容項(xiàng)以更新時(shí)間排序,當(dāng)更新時(shí)間不可用時(shí),才以id排序。

  請(qǐng)求中的limit參數(shù)限定了響應(yīng)每一頁(yè)的數(shù)據(jù)項(xiàng)容量,如下面的請(qǐng)求

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

規(guī)定了keystone服務(wù)器返回的每一頁(yè)中只包含一個(gè)目標(biāo)數(shù)據(jù)項(xiàng)。為了能夠了解全部的數(shù)據(jù)項(xiàng),服務(wù)器返回的信息在遵照客戶端設(shè)置的分頁(yè)容量同時(shí)提供"next"和"previous"字段,其內(nèi)容分別是下一頁(yè)和上一頁(yè)的URL,利用這兩個(gè)字段,客戶端可以請(qǐng)求超過(guò)自己設(shè)定的分頁(yè)容量的數(shù)據(jù)。

  如果客戶端請(qǐng)求中設(shè)置的響應(yīng)頁(yè)容量(limit)超過(guò)了服務(wù)器端部署時(shí)的配置限制的話,那么響應(yīng)將會(huì)報(bào)413(overLimit)錯(cuò)誤,如果客戶端請(qǐng)求中設(shè)置的marker不是一個(gè)有效的ID的話,那么將會(huì)報(bào)404(itemNotFound)錯(cuò)誤。

  需要注意的是,當(dāng)請(qǐng)求的對(duì)象集合是空集時(shí),此時(shí)不會(huì)報(bào)404錯(cuò)誤,此時(shí)客戶端就會(huì)受到一個(gè)空的結(jié)果。

1.4 錯(cuò)誤響應(yīng)代碼

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

?

2主要API匯總

2.1Client 操作

主要包括API 版本信息、擴(kuò)展和令牌相關(guān)的查詢操作。

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

GET    /v2.0???????????????????????????????????????? 顯示Identity API v2.0的詳細(xì)信息

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

GET    /v2.0/extensions/{alias}???????? 獲得指定擴(kuò)展的詳細(xì)信息

POST    /v2.0/tokens???????????????????????? 身份認(rèn)證,同時(shí)獲取token ? ? ? ? ??

?

2.2 Administrative操作

主要包括版本信息,擴(kuò)展,用戶和工程的查詢操作,以及登錄系統(tǒng)進(jìn)行身份認(rèn)證的令牌操作。

GET    /v2.0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?顯示Identity API v2.0的詳細(xì)信息

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

GET    /v2.0/extensions/{alias}???????? 獲取某一擴(kuò)展的詳細(xì)信息

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

  身份認(rèn)證,同時(shí)獲取token
GET     ??/v2.0/tokens/{tokenId}{?belongsTo} ?

  驗(yàn)證令牌,同時(shí)確認(rèn)該令牌屬于指定租戶

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

  驗(yàn)證令牌,確認(rèn)該令牌屬于指定租戶,只收取響應(yīng)的頭信息,效率更高

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

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

  通過(guò)用戶id來(lái)獲取某用戶的具體信息
GET    /v2.0/users/{user_id}/roles???????????????????

  列出一個(gè)用戶的所有角色

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

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

  通過(guò)租戶名稱查詢其詳細(xì)信息
GET    /v2.0/tenants/{tenantId}??????????????????????  

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

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

?

2.3OS-KSADM admin 擴(kuò)展

  主要包括:用戶、角色、項(xiàng)目和服務(wù)部分的操作

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

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

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

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

  刪除一個(gè)用戶

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}???

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

  查看當(dāng)前角色
GET    /v2.0/OS-KSADM/roles/

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

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

  根據(jù)角色I(xiàn)D獲取角色信息
DELETE??????? /v2.0/OS-KSADM/roles/{roleId}???????????

  刪除一個(gè)角色

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

  創(chuàng)建一個(gè)租戶
POST    /v2.0/tenants/{tenantId}???????????

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

  刪除一個(gè)租戶

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

  列出一個(gè)租戶的所有用戶

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}

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

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

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

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

  刪除服務(wù)

?

2.4 OS-KSCATALOG 擴(kuò)展

  主要包括對(duì)終端和終端模板的操作

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

  列出一個(gè)租戶的所有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 擴(kuò)展

  主要包括對(duì)EC2兼容的Credential的操作

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

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

  為一個(gè)用戶添加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}

  根據(jù)指定類型顯示credentials

?

2.6 OS-KSS3擴(kuò)展

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

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

  為一個(gè)用戶添加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}

  根據(jù)指定類型顯示credentials

?

2.7 OS-KSVALIDATE擴(kuò)展

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

  驗(yàn)證一個(gè)令牌,屬于指定的租戶和服務(wù),返回對(duì)應(yīng)客戶的權(quán)限

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

  上一個(gè)API的高效版

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

  列出與一個(gè)令牌關(guān)聯(lián)的endpoints

?

以下API v2.0請(qǐng)參考《 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參考手冊(cè)

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 91精品国产乱码久久久久久 | 亚洲国产一区二区三区综合片 | 97在线国产视频 | 日韩中文字幕在线看 | 在线观看日本中文字幕 | 一本久道久久综合狠狠爱 | 国内欧美一区二区三区 | 久久久久久久久久免免费精品 | 福利视频区 | 亚洲一区二区三区欧美 | 综合色伊人 | 精品国产人成亚洲区 | 手机看片日韩高清国产欧美 | 欧美成人免费香蕉 | 日日射影院| 中文字幕一区二区在线观看 | 国产成人三级 | 久久精品操 | 青草社区在线观看 | 中文字幕在线视频不卡 | 377p亚洲欧洲日本大胆色噜噜 | 一个色中文字幕 | 国产亚洲精品成人一区看片 | 亚洲va天堂va欧美ⅴa | 国产亚洲在线观看 | 欧美毛片日韩一级在线 | 亚洲伊人成人网 | 性欧美视频a毛片在线播放 性欧美视频在线观看 | 男人的天堂久久香蕉国产 | 色婷婷基地 | 成人禁在线观看午夜亚洲 | 九九爱这里只有精品 | 中文字幕在线视频不卡 | 男女性高清爱潮视频免费观看 | 精品伊人久久大香线蕉网站 | 搡女人免费的视频 | 99视频精品全部免费免费观 | 97视频在线观看视频最新 | 97免费在线观看视频 | 毛片色情 | 久久国产精品99久久久久久牛牛 |