OpenStack Apis Authenticate (Token ID&Tenant ID)

调用openstack api需要先发送认证请求,需要获取Token ID和Tenant 使用trystack的话需要获得username,password,tenant,name和认证地址等选项,获取方法如下:

1. 获取api密码

登录成功后点击右上角的用户名选择设置,然后选择左侧的“API Password”,然后点击“Request API password”按钮,获取你的 Api密码,获取之后自行记住。然后你需要退出重新登录,可以直接用用户名:facebook*** 密码就是刚刚获取的登录。 image

2. 获取认证地址,tenant name等信息

点击左侧dashboard的Compute选项中的访问和安全,选择右侧的“访问&安全”选项,然后点击“下载OpenStack RC文件”按钮,下载文件至本地。 image 下载完成后代开下载的文件,需要的信息已经在下图圈出。

3. 获取其他信息

认证获取Token ID 和 Tenant ID(其实tenant id上图的openstack RC文件中已经给出来了)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python
#-*- coding: UTF-8 -*-  
import urllib, httplib, json, urlparse
FLOATING_IP = '8.21.28.*'                   #你的认证ip
TENANT_NAME = 'your tenant name'
USERNAME = 'your username'
PASSWD = 'your password'

url = FLOATING_IP + ':5000'
try:
    params = '{"auth": {"tenantName":"' + TENANT_NAME + '", "passwordCredentials":{"username":"' + USERNAME + '", "password":"' + PASSWD + '"}}}'
    headers = {'Content-Type': 'application/json'}
    conn = httplib.HTTPConnection(url)
    conn.request('POST','/v2.0/tokens',params,headers)
    response = conn.getresponse()
    data = response.read()
    dd = json.loads(data)
    if 'error' in dd:
        print 'Error,Openstack Authorized Failed!'
        conn.close()
        exit()
    conn.close()
    
except Exception as e:
    print url + '/v2.0/tokens', e
    conn.close()
    exit()
 
token_id = dd['access']['token']['id']
tenant_id = dd['access']['token']['tenant']['id']
print "token : " + token_id
print "tenant id : " + tenant_id
一个默默无闻的工程师的日常
Built with Hugo
主题 StackJimmy 设计