本文內(nèi)容屬于個(gè)人原創(chuàng),轉(zhuǎn)載務(wù)必注明出處:
? http://www.cnblogs.com/Security-Darren/p/4138945.html
考慮到Keystone社區(qū)逐漸棄用第二版身份API, 而Keystone原有的客戶端keystoneclient將不會(huì)在命令行工具上支持Keystone第三版API, 我們有必要了解項(xiàng)目openstackclient及其使用, 這里我們主要探討如何使用openstackclient調(diào)用第三版Keystone身份API.
openstackclient旨在整合現(xiàn)有的各個(gè)OpenStack服務(wù)客戶端工具, 提供一個(gè)統(tǒng)一的命令行接口, 這個(gè)項(xiàng)目處于不斷的完善中, 但目前已發(fā)布的版本對(duì)Keystone第三版身份API已經(jīng)有比較好的支持, 這里我們主要介紹該命令行工具如何操作和管理OpenStack系統(tǒng)中與Keystone相關(guān)的內(nèi)容.
OpenStack中涉及到的身份管理概念如下, 這些實(shí)體都可以由openstackclient提供的命令行工具進(jìn)行操作.
*本文僅探討如何使用openstackclient操作OpenStack中的身份實(shí)體. 如果想要全面了解項(xiàng)目"python-openstackclient", 請(qǐng)移步 這里 .
?
OpenStack身份管理概念
項(xiàng)目域 (domain): 一組項(xiàng)目.
用戶組 (group): 一組用戶.
項(xiàng)目 (project): 一組虛擬資源的所有者.
角色 (role): 一個(gè)幫助實(shí)現(xiàn)授權(quán)的策略對(duì)象.
用戶 (user): 使用云資源的個(gè)體.
令牌 (token): 決定能否訪問(wèn)的的一段特殊文字.
策略 (policy): 決定授權(quán)與訪問(wèn)控制的策略.
服務(wù) (service):一個(gè)云服務(wù).
端點(diǎn) (endpoint): 用于訪問(wèn)一個(gè)具體云服務(wù)的URL.
地理域 (region): 一些物理機(jī)的組合.
消費(fèi)者 (consumer): 基于OAuth的被授權(quán)人.
請(qǐng)求令牌 (request token): 臨時(shí)的OAuth令牌.
訪問(wèn)令牌 (access token): 長(zhǎng)期的OAuth令牌.
憑證 (credential): 針對(duì)于身份提供方的憑證.
身份提供方 (identity provider): 一個(gè)提供用戶來(lái)源和身份認(rèn)證的機(jī)構(gòu).
結(jié)盟協(xié)議 (federation protocol):??
映射 (mapping):
openstackclient的全局選項(xiàng)
(選項(xiàng)后的 "ENV" 表示這個(gè)選項(xiàng)可以設(shè)置為系統(tǒng)的環(huán)境變量, 環(huán)境變量的名稱就是將選項(xiàng)前的"--"去除, 所有字母轉(zhuǎn)為大寫并將用于連接的"-"改成下劃線"_", 比如"--os-auth-url"對(duì)應(yīng)的環(huán)境變量名為"OS_AUTH_URL")
| ? | 對(duì)應(yīng)的環(huán)境變量 | 默認(rèn)值 | 可選值 | 作用 |
| --version | ? | ? | ? | ? |
| -h, --help | ? | ? | ? | ? |
| --debug? | ? | ? | ? | ? |
| --quiet, -q | ? | ? | ? | ? |
| --verbose | ? | ? | ? | ? |
| --log-file <file-name>? | ? | ? | ? | ? |
| --os-cloud <cloud-config-name> | Env: OS_CLOUD | ? | ? | ? |
| --os-region-name <region> | Env: OS_REGION_NAME | ? | ? | ? |
| --os-cacert <file> | ? | ? | ? | ? |
| --verify | ? | ? | ? | ? |
| --insecure? | ? | ? | ? | ? |
| --os-default-domain <auth-domain> | OS_DEFAULT_DOMAIN | ? | ? | ? |
| --timing | ? | ? | ? | ? |
| --os-compute-api-version <compute-api-version> | OS_COMPUTE_API_VERSION | 2 | ? | ? |
| --os-network-api-version <network-api-version> | OS_NETWORK_API_VERSION | 2 | ? | ? |
| --os-image-api-version <image-api-version> | OS_IMAGE_API_VERSION | 1 | ? | ? |
| --os-volume-api-version <volume-api-version> | OS_VOLUME_API_VERSION | 1 | ? | ? |
| --os-identity-api-version <identity-api-version> | OS_IDENTITY_API_VERSION | 2 | ? | ? |
| --os-object-api-version <object-api-version> | OS_OBJECT_API_VERSION | 1 | ? | ? |
| --os-auth-type <auth-type> | OS_AUTH_TYPE | ? |
v2token, v2password, v3password, v3scopedsaml, v3unscopedadfs, token, v3token, password, v3unscopedsaml, osc_password, token_endpoint |
? |
| --os-user-id <auth-user-id> | OS_USER_ID | ? | ? | 登陸用戶ID,僅用用戶ID足以唯一確定用戶 |
| --os-username <auth-username> | OS_USERNAME | ? | ? | 登陸用戶名,僅用用戶名無(wú)法唯一確定用戶 |
| --os-user-domain-name <auth-user-domain-name> | OS_USER_DOMAIN_NAME | ? | ? | 限定用戶所在的domain |
| --os-user-domain-id <auth-user-domain-id> | OS_USER_DOMAIN_ID | ? | ? | 限定用戶所在的domain |
| --os-password <auth-password> | OS_PASSWORD | ? | ? | 用戶的登陸密碼 |
| --os-project-id <auth-project-id> | OS_PROJECT_ID | ? | ? | 設(shè)置登陸的scope為某個(gè)poject,僅用project ID就足以唯一確定project |
| --os-project-name <auth-project-name> | OS_PROJECT_NAME | ? | ? | 設(shè)置登陸的scope為某個(gè)poject,僅用project名無(wú)法唯一確定project |
| --os-project-domain-name <auth-project-domain-name> | OS_PROJECT_DOMAIN_NAME | ? | ? | 限定project所在的domain |
| --os-project-domain-id <auth-project-domain-id> | OS_PROJECT_DOMAIN_ID | ? | ? | 限定project所在的domain |
| --os-domain-name <auth-domain-name> | OS_DOMAIN_NAME | ? | ? | 設(shè)置登陸的scope為某個(gè)domain,僅用domain名就可以唯一確定domain |
| --os-domain-id <auth-domain-id> | OS_DOMAIN_ID | ? | ? | 設(shè)置登陸的scope為某個(gè)domain,僅用domain ID也可以唯一確定domain |
| --os-auth-url <auth-auth-url> | OS_AUTH_URL | ? | ? | 使用用戶名+密碼登陸方式時(shí),通過(guò)該選項(xiàng)指定要認(rèn)證的Keystone端點(diǎn) |
| --os-token <auth-token> | OS_TOKEN | ? | ? | ? |
| --os-url <auth-url> | OS_URL | ? | ? | ? |
| --os-endpoint <auth-endpoint> | OS_ENDPOINT | ? | ? | ? |
| --os-identity-provider-url <auth-identity-provider-url> | OS_IDENTITY_PROVIDER_URL | ? | ? | ? |
| --os-service-provider-endpoint <auth-service-provider-endpoint> | OS_SERVICE_PROVIDER_ENDPOINT | ? | ? | ? |
| --os-identity-provider <auth-identity-provider> | OS_IDENTITY_PROVIDER | ? | ? | ? |
| --os-trust-id <auth-trust-id> | OS_TRUST_ID | ? | ? | ? |
?
使用openstackclient雖然能夠提供更多更一致的操作,僅僅登陸就需要多個(gè)選項(xiàng)進(jìn)行設(shè)定,如果不能理解每個(gè)選項(xiàng)的含義,是無(wú)法正確登陸openstack,也無(wú)法正常使用的。在Keystone v3 Identity API中,以下概念的命名空間能夠幫助我們理解登陸時(shí)各個(gè)選項(xiàng)的含義:
1. domain:命名空間是整個(gè)keystone,因此一個(gè)domain的name和ID都能唯一確定某個(gè)domain;
2. user:命名空間是某個(gè)domain,因此一個(gè)user的name無(wú)法唯一確定某個(gè)user,必須結(jié)合他所在的domain才行;而user ID卻能唯一確定某個(gè)用戶;
3. project:命名空間是某個(gè)domain,因此name和ID的作用同user。
?
此外Keystone?v3 Identity API允許用戶選擇某一次登陸時(shí)獲取令牌限定的范圍(scope),scope可以是domain, project, trust和沒(méi)有;如果用戶登陸時(shí)沒(méi)有指定scope,那么又視用戶是否具有default_project_id這個(gè)屬性,要么用戶此次會(huì)話被綁定到默認(rèn)的project,或者此次會(huì)話沒(méi)有綁定任何scope(unscoped)。
因此回頭查看openstack命令登陸時(shí)的選項(xiàng),關(guān)鍵是通過(guò)? --os-auth-type ?選擇自己需要的認(rèn)證方式,比如選擇? v3password ?后,需要提供自己的用戶名和密碼,此時(shí)需要明確由于命名空間的原因,僅僅提供自己的用戶名是無(wú)法通過(guò)Keystone的認(rèn)證的,所以就可能需要? --os-user-domain- id ?或? --os-user-domain-name ?來(lái)唯一地告訴Keystone自己到底是哪個(gè)用戶。
然后就是確定自己這次會(huì)話要確定的scope,可以是domain, 也可以是project,需要通過(guò)? --os-project- id ?、? --os-project-name ?或者? --os-domain-name ?、? --os-domain- id ?來(lái)告訴Keystone此次會(huì)話要綁定的scope。這時(shí)又要注意,由于project的命名空間是某個(gè)domain,因此如果使用? --os-project-name ?來(lái)確定scope,那么還要通過(guò)? --os-project-domain-name 或? --os-project-domain- id ?來(lái)唯一確定這個(gè)project。
下面給出幾個(gè)使用openstackclient登陸openstack的例子,
1. 使用keystone.conf文件中設(shè)置的“admin_token”來(lái)登陸,獲取系統(tǒng)的最高權(quán)限
openstack \
--os-identity-api-version
3
\
--os-auth-
type token_endpoint \
--os-
token ADMIN \
--os-url http:
//
127.0.0.1:35357/v3
注意這次會(huì)話將使用的是Keystone?v3 Identity API,可見keystone.conf的“admin_token”便于初始化Keystone,有趣的是,盡管? --os-auth-type ?選擇的是“token_endpoint”,卻不能使用? --os-endpoint ?來(lái)指定Keystone的地址。
另一方面,如果繼續(xù)使用Keystone?v2 Identity API,需要將? --os-identity-api-version ?的值設(shè)置為2,同時(shí)? --os-url ?設(shè)為http://127.0.0.1:35357/v2.0,盡管都是作為系統(tǒng)的初始化用戶登陸,但是如果指定的API版本不同,進(jìn)入到openstackclient交互空間后,可以看到的操作不同,第二版的Keystone API不存在多domain的概念,也無(wú)法執(zhí)行一些第三版Keystone API才有的CLI命令。
例如,使用admin_token訪問(wèn)第三版Keystone API,查看能對(duì)role執(zhí)行的操作:
(.venv)root@os-VirtualBox:/opt/
keystone# openstack \
> --os-identity-api-version
3
\
> --os-auth-
type token_endpoint \
> --os-
token ADMIN \
> --os-url http:
//
127.0.0.1:35357/v3
(openstack) help role
Command
"
role
"
matches:
role remove
role create
role delete
role add
role list
role assignment list
role set
role show
?
類似地,使用admin_token訪問(wèn)第二版Keystone API,同樣查看能對(duì)role執(zhí)行的操作:
openstack \
--os-identity-api-version
2
\
--os-auth-
type token_endpoint \
--os-
token ADMIN \
--os-url http:
//
127.0.0.1:35357/v2.0
(openstack) help role
Command
"
role
"
matches:
role remove
role create
role delete
role list
role add
role show
類似地,可以看到,第二版Keystone API不能執(zhí)行一些第三版Keystone API的很多功能,而且由于社區(qū)已經(jīng)逐漸棄用第二版Keystone API,我們將關(guān)注第三版Keystone API的功能。
2. 使用用戶名+密碼登陸,scope限定為某個(gè)domain
openstack \
--os-identity-api-version
3
\
--os-auth-
type v3password \
--os-
username darren \
--os-password 123456
\
--os-user-domain-
id
default \
--os-domain-
id
default \
--os-auth-url http:
//
127.0.0.1:5000/v3
?
scope限定為某個(gè)domain時(shí),用戶在該domain上必須已經(jīng)被授予了某個(gè)role,而且這個(gè)role具有執(zhí)行一些命令一些權(quán)限,才能執(zhí)行后續(xù)的操作,否則用戶無(wú)法在openstackclient的交互空間執(zhí)行命令。
3. 使用用戶名+密碼登陸,scope限定為某個(gè)project
openstack \
--os-identity-api-version
3
\
--os-auth-
type v3password \
--os-
username darren \
--os-password
123465
\
--os-user-domain-
id
default \
--os-project-
name darren \
--os-project-domain-
id
default \
--os-auth-url http:
//
127.0.0.1:5000/v3
?
使用openstackclient初始化Keystone
? 使用openstackclient的一個(gè)問(wèn)題是如何初始化整個(gè)Keystone,我們可以通過(guò):
1. 采用上面例1中的admin_token方式登陸,完成下面2、 3的初始化;
2.?創(chuàng)建一個(gè)新的管理domain,作為云服務(wù)提供商所在的domain,其他的domain視為租戶。為了向后兼容,所有使用第二版Keystone API的對(duì)象都屬于ID為"default"的domain,第三版Keystone API則沒(méi)有這個(gè)限制;
3.?在這個(gè)管理domain里面添加用戶(組)、角色、項(xiàng)目等,為用戶授予管理員角色(可以綁定到domain、project或group),記錄下這個(gè)管理domain的ID;
4. 退出當(dāng)前的會(huì)話,修改默認(rèn)的policy.v3cloudsample.json文件,將規(guī)則:
"
cloud_admin
"
:
"
rule:admin_required and domain_id:REPLACE_ADMIN_DOMAIN_HERE
"
?
中"domain_id"后面的值替換成實(shí)際創(chuàng)建的管理domain的ID,
5. 修改keystone.conf文件,將policy_file設(shè)置為policy.v3cloudsample.json的路徑,然后重啟Keystone;
6. 使用openstackclient,采用上面例2中將會(huì)話scope綁定為domain的方式登陸,然后就可以作為云管理員操作了。注意能夠以綁定到domain的形式進(jìn)行操作的前提是用戶具有domain級(jí)的role,否則即使進(jìn)入openstackclient的交互空間,也無(wú)法執(zhí)行操作;
7. 下面可以從keystone.conf中注釋掉"admin_token",并從keystone-paste.ini文件的Paste pipeline中移除過(guò)濾器admin_token_auth,這樣,以后就不能使用初始化系統(tǒng)的“admin_token”登陸了:
[
pipeline:api_v3
]
pipeline
= sizelimit url_normalize request_id build_auth_context token_auth
admin_token_auth
json_body ec2_extension_v3 s3_extension simple_cert_extension revoke_extension federation_extension oauth1_extension endpoint_filter_extension endpoint_policy_extension service_v3
?
改為
[
pipeline:api_v3
]
pipeline
= sizelimit url_normalize request_id build_auth_context token_auth json_body ec2_extension_v3 s3_extension simple_cert_extension revoke_extension federation_extension oauth1_extension endpoint_filter_extension endpoint_policy_extension service_v3
?
openstackclient Keystone v3 API--基于1.1.0版openstackclient
| 概念 | 操作 | 功能 |
| access token | create | oauth1 |
| catalog | list, show | ? |
| consumer | create, list, set, delete, show | oauth1 |
| credential | create, list, set, delete, show | ? |
| domain | create, list, set, delete, show | ? |
| endpoint | create, list, set, delete, show | ? |
| federation project | list | federation |
| federation domain | list | federation |
| federation protocol | create, list, set, delete, show | federation |
| group |
create, list, set, delete, show add user, remove user, contains user |
? |
| identity provider | create, list, set, delete, show | federation |
| mapping | create, list, set, delete, show | ? |
| policy | create, list, set, delete, show | ? |
| project | create, list, set, delete, show | ? |
| region | create, list, set, delete, show | ? |
| request token | authorize, create | oauth1 |
| role | create, list, set, delete, show, add, remove | ? |
| role assignment | list | ? |
| service | create, list, set, delete, show | ? |
| token | issue | ? |
| trust | create, list, delete, show | ? |
| user password | set | ? |
| user | create, list, set, delete, show | ? |
?
一. 消費(fèi)者(consumer)相關(guān)操作
創(chuàng)建消費(fèi)者
consumer create
[
--description <consumer-description>]
?
刪除消費(fèi)者
consumer delete
<consumer>
?
更新消費(fèi)者
consumer set
[
--description <new-consumer-description>
]
<consumer>
?
查看單個(gè)消費(fèi)者明細(xì)
consumer show
<consumer>
?
列出所有消費(fèi)者
consumer list
二. 憑證(credential)相關(guān)操作
創(chuàng)建憑證
credential create
[
--type <type>
]
[
--project <project>
]
<user>
<data>
?
刪除憑證
credential delete
<credential-
id
>
?
更新憑證
credential set
[
--user <user>
]
[
--type <type>
]
[
--data <data>
]
[
--project <project>
]
<credential-
id
>
?
查看單個(gè)憑證明細(xì)
credential show
<credential-
id
>
?
列出所有憑證 ??
credential list
三. 域(domain)相關(guān)的操作
創(chuàng)建域
domain create
[
--description <domain-description>
]
[
--enable | --
disable]
<domain-name>
?
刪除域
domain delete
<domain>
?
?更新域
domain set
[
--name <new-domain-name>
]
[
--description <domain-description>
]
[
--enable | --
disable]
<domain>
?
查看單個(gè)域明細(xì)
domain show
<domain>
?
列出所有域
domain list
?
四. 端點(diǎn)(endpoint )相關(guān)的操作
創(chuàng)建端點(diǎn)
endpoint create
[
--region <region>
]
[
--enable | --
disable]
<service>
<interface>
<url>
?
刪除斷點(diǎn)
endpoint delete
<endpoint>
?
更新端點(diǎn)
endpoint set
[
--interface <interface>
]
[
--url <url>
]
[
--service <service>
]
[
--region <region>
]
[
--enable | --
disable]
<endpoint> ?
?
查看單個(gè)端點(diǎn)明細(xì)
endpoint show
<endpoint>
?
列出所有端點(diǎn)
endpoint list
?
五. 結(jié)盟協(xié)議(federation protocol )相關(guān)操作
創(chuàng)建結(jié)盟協(xié)議
federation protocol create
[
--identity-provider <identity-provider>
]
[
--mapping <mapping>
]
<name>
?
刪除結(jié)盟協(xié)議
federation protocol delete
[
--identity-provider <identity-provider>
]
<name>
?
列出所有結(jié)盟協(xié)議
federation protocol list
[
--identity-provider <identity-provider>]
?
更新結(jié)盟協(xié)議
federation protocol set
[
--identity-provider <identity-provider>
]
[
--mapping <mapping>
]
<name>
?
查看單個(gè)結(jié)盟協(xié)議明細(xì)
federation protocol show
[
--identity-provider <identity-provider>
]
<name>
?
列出已結(jié)盟的域
federation domain list
?
列出已結(jié)盟的項(xiàng)目?? ??? ?
federation project list
?
六. 用戶組(group )相關(guān)的操作
為用戶組添加用戶
group add user
<group>
<user>
?
驗(yàn)證用戶組是否包含某個(gè)用戶
group contains user
<group>
<user>
?
創(chuàng)建用戶組
group create
[
--domain <group-domain>
]
<group-name>
?
刪除用戶組
group delete
[--domain <domain>]
<group> [<group> ...]
?
列出所有用戶組
group list
[
--domain <domain>
]
[
--user <user>
]
?
從用戶組種刪除用戶
group remove user
<group>
<user>
?
更新用戶組
group set
[
--name <new-group-name>
]
[
--domain <group-domain>
]
[
--description <group-description>
]
<group>
?
查看單個(gè)用戶組明細(xì)
group show
<group>
?
七. 身份提供方(identity provider )相關(guān)的操作
創(chuàng)建身份提供方
identity provider create
[
--description <description>
]
[
--enable | --
disable]
<identity-provider-
id
>
?
刪除身份提供方
identity provider delete
<identity-provider-
id
>
?
更新身份提供方
identity provider set
[
--enable | --
disable]
<identity-provider-
id
>
?
查看單個(gè)身份提供方明細(xì)
identity provider show
<identity-provider-
id
>
列出所有身份提供方
identity provider list
?
八. 映射(mapping )相關(guān)操作
創(chuàng)建映射
mapping create
[
--rules <rules>
]
<name>
?
刪除映射
mapping delete
<name>
?
更新映射
mapping set
[
--rules <rules>
]
<name>
?
查看單個(gè)映射明細(xì)
mapping show
<name>
?
列出所有映射
mapping list
?
九. 策略(policy )相關(guān)操作
創(chuàng)建策略
policy create
[
--type <policy-type>
]
<blob-
file
>
刪除策略
policy delete
<policy-
id
>
?
列出所有策略
policy list
[
--include-blob]
?
更新策略
policy set
[
--type <policy-type>
]
[
--blob-
file
<blob_file>
]
<policy-
id
>
?
查看單個(gè)策略明細(xì)
policy show
<policy-
id
>
?
十. 項(xiàng)目(project )相關(guān)操作
創(chuàng)建項(xiàng)目
project create
[
--domain <project-domain>
]
[
--description <project-description>
]
[
--enable | --
disable]
[
--property <key=value>
]
<project-name>
?
刪除項(xiàng)目
project delete
<project>
列出所有項(xiàng)目
project list
[
--
long
]
[
--domain <project-domain>]
?
更新項(xiàng)目
project set
[
--name <new-project-name>
]
[
--domain <project-domain>
]
[
--description <project-description>
]
[
--enable | --
disable]
[
--property <key=value>
]
<project>
?
列出所有項(xiàng)目
project usage list
?
查看單個(gè)項(xiàng)目明細(xì)
project show
<project>
?
十一. 物理域(region )相關(guān)操作
創(chuàng)建物理域
region create
[
--parent-region <parent-region>
]
[
--description <region-description>
]
[
--url <region-url>
]
<region-id>
?
列出所有物理域
region list
[
--parent-region <parent-region>]
?
刪除某個(gè)物理域
region delete
<region-id>
?
查看某個(gè)物理域明細(xì)
region show
<region-id>
?
更新物理域
region set
[
--parent-region <parent-region>
]
[
--description <region-description>
]
[
--url <region-url>
]
<region>
十二. 角色(role)相關(guān)的操作
創(chuàng)建角色
role create
<role-name>
?
刪除角色
role delete
<role> [<role> ...]
列出所有角色
role list
[
--domain <domain> | --project <project>
]
[
--user <user> | --group <group>]
?
更新角色
role set
[
--name <new-role-name>
]
<role>
?
查看單個(gè)角色明細(xì)
role show
<role>
?
授予用戶角色
role add
[--user <user> | --group <group>
] [--domain <domain> | --project <project>
] <role>
?
撤銷用戶角色
role remove
[--domain <domain> | --project <project>
] [--user <user> | --group <group>
] <role>
?
列出所有角色授予記錄
role assignment list
[
--
effective]
[
--role <role>
]
[
--user <user> | --group <group>
]
[
--domain <domain> | --project <project>]
? 其中
--effective 只返回 effective role assignments
?
十三. 服務(wù)(service )相關(guān)操作
創(chuàng)建服務(wù)
service create
[
--name <service-name>
]
[
--enable | --
disable]
<service-type>
?
刪除服務(wù)
service delete
<service>
<service> -- Service to delete (type or ID)
?
列出所有服務(wù)
service list
?
更新服務(wù)
service set
[
--type <service-type>
]
[
--name <service-name>
]
[
--enable | --
disable]
<service>
?
查看單個(gè)服務(wù)明細(xì)
service show
<service>
?
十四. 用戶(user )相關(guān)操作
創(chuàng)建用戶
user create
[
--password <user-password>
]
[
--project <project>
]
[
--domain <domain>
]
[
--enable | --
disable]
<user-name>
?
刪除用戶
user delete
[--domain <domain>]
<user> [<user> ...]
?
列出所有用戶
user list
[
--domain <domain>
]
[
--group <group> | --project <project>
]
[
--
long
]
?
更新用戶
user set
[
--name <new-user-name>
]
[
--password <user-password>
]
[
--password-
prompt]
[
--email <user-email>
]
[
--domain <domain>
]
[
--project <project>
]
[
--description <description>
]
[
--enable | --
disable]
<user>
?
修改當(dāng)前用戶密碼
user password set
[
--password <password>]
?
查看單個(gè)用戶明細(xì)
user show
[
--domain <domain>
]
<user>
?
十五. oauth相關(guān)操作
授權(quán)請(qǐng)求令牌
request token authorize
[
--request-key <request-key>
]
[
--role-ids <role-ids>]
?
創(chuàng)建請(qǐng)求令牌 ? ?
request token create
[
--consumer-key <request-key>
]
[
--consumer-secret <consumer-secret>
]
--project-
id
<project-
id
>
創(chuàng)建訪問(wèn)令牌
access token create
[
--consumer-key <consumer-key>
]
[
--consumer-secret <consumer-secret>
]
[
--request-key <request-key>
]
[
--request-secret <request-secret>
]
[
--verifier <verifier>]
?
簽發(fā)令牌
token issue
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

